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.
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,