Message ID | 20240314202813.2942950-1-jason@redhat.com |
---|---|
State | New |
Headers | show |
Series | [RFA] tree-core: clarify clobber comments | expand |
On Thu, Mar 14, 2024 at 04:27:22PM -0400, Jason Merrill wrote: > OK for trunk? > > -- 8< -- > > It came up on the mailing list that OBJECT_BEGIN/END are described as > marking object lifetime, but mark the beginning of the constructor and end > of the destructor, whereas the C++ notion of lifetime is between the end of > the constructor and beginning of the destructor. So let's fix the comments. > > gcc/ChangeLog: > > * tree-core.h (enum clobber_kind): Clarify CLOBBER_OBJECT_* > comments. LGTM. > diff --git a/gcc/tree-core.h b/gcc/tree-core.h > index 8a89462bd7e..654d182b1c3 100644 > --- a/gcc/tree-core.h > +++ b/gcc/tree-core.h > @@ -993,9 +993,11 @@ enum clobber_kind { > CLOBBER_UNDEF, > /* Beginning of storage duration, e.g. malloc. */ > CLOBBER_STORAGE_BEGIN, > - /* Beginning of object lifetime, e.g. C++ constructor. */ > + /* Beginning of object data, e.g. start of C++ constructor. This differs > + from C++ 'lifetime', which starts when initialization is complete; a > + clobber there would discard the initialization. */ > CLOBBER_OBJECT_BEGIN, > - /* End of object lifetime, e.g. C++ destructor. */ > + /* End of object data, e.g. end of C++ destructor. */ > CLOBBER_OBJECT_END, > /* End of storage duration, e.g. free. */ > CLOBBER_STORAGE_END, > > base-commit: 5c01ede02a1f9ba1a58ab8d96a73e46e0484d820 > -- > 2.43.2 Jakub
diff --git a/gcc/tree-core.h b/gcc/tree-core.h index 8a89462bd7e..654d182b1c3 100644 --- a/gcc/tree-core.h +++ b/gcc/tree-core.h @@ -993,9 +993,11 @@ enum clobber_kind { CLOBBER_UNDEF, /* Beginning of storage duration, e.g. malloc. */ CLOBBER_STORAGE_BEGIN, - /* Beginning of object lifetime, e.g. C++ constructor. */ + /* Beginning of object data, e.g. start of C++ constructor. This differs + from C++ 'lifetime', which starts when initialization is complete; a + clobber there would discard the initialization. */ CLOBBER_OBJECT_BEGIN, - /* End of object lifetime, e.g. C++ destructor. */ + /* End of object data, e.g. end of C++ destructor. */ CLOBBER_OBJECT_END, /* End of storage duration, e.g. free. */ CLOBBER_STORAGE_END,