diff mbox series

[RFA] tree-core: clarify clobber comments

Message ID 20240314202813.2942950-1-jason@redhat.com
State New
Headers show
Series [RFA] tree-core: clarify clobber comments | expand

Commit Message

Jason Merrill March 14, 2024, 8:27 p.m. UTC
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.
---
 gcc/tree-core.h | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)


base-commit: 5c01ede02a1f9ba1a58ab8d96a73e46e0484d820

Comments

Jakub Jelinek March 14, 2024, 8:46 p.m. UTC | #1
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 mbox series

Patch

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,