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

Reply via email to