tree.def (TYPE_SIZE): Clarify.
authorMartin Sebor <msebor@redhat.com>
Fri, 16 Aug 2019 15:53:29 +0000 (15:53 +0000)
committerMartin Sebor <msebor@gcc.gnu.org>
Fri, 16 Aug 2019 15:53:29 +0000 (09:53 -0600)
gcc/ChangeLog:

* tree.def (TYPE_SIZE): Clarify.
* tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments.

From-SVN: r274575

gcc/ChangeLog
gcc/tree.def
gcc/tree.h

index 772c4e928164190a91ab9352256316291d92901a..b5badf3ff1e5952c4446f5377f38104a0dcdc609 100644 (file)
@@ -1,3 +1,8 @@
+2019-08-16  Martin Sebor  <msebor@redhat.com>
+
+       * tree.def (TYPE_SIZE): Clarify.
+       * tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments.
+
 2019-08-16  Bernd Edlinger  <bernd.edlinger@hotmail.de>
 
        PR tree-optimization/91109
index 4a22d94f01841a395a798d18733e82f70778f80e..bfb486df332846e1cce9e18ef54317301a947931 100644 (file)
@@ -77,7 +77,10 @@ DEFTREECODE (BLOCK, "block", tcc_exceptional, 0)
 /* Each data type is represented by a tree node whose code is one of
    the following:  */
 /* Each node that represents a data type has a component TYPE_SIZE
-   containing a tree that is an expression for the size in bits.
+   that evaluates either to a tree that is a (potentially non-constant)
+   expression representing the type size in bits, or to a null pointer
+   when the size of the type is unknown (for example, for incomplete
+   types such as arrays of unspecified bound).
    The TYPE_MODE contains the machine mode for values of this type.
    The TYPE_POINTER_TO field contains a type for a pointer to this type,
      or zero if no such has been created yet.
index b910c5cb4759b4e45ba19b9344249cf097fa9a7d..37f6d57c03481d4e2ad8fe4c3f8b6fa4322f206a 100644 (file)
@@ -1952,7 +1952,10 @@ class auto_suppress_location_wrappers
    so they must be checked as well.  */
 
 #define TYPE_UID(NODE) (TYPE_CHECK (NODE)->type_common.uid)
+/* Type size in bits as a tree expression.  Need not be constant
+   and may be null.  */
 #define TYPE_SIZE(NODE) (TYPE_CHECK (NODE)->type_common.size)
+/* Likewise, type size in bytes.  */
 #define TYPE_SIZE_UNIT(NODE) (TYPE_CHECK (NODE)->type_common.size_unit)
 #define TYPE_POINTER_TO(NODE) (TYPE_CHECK (NODE)->type_common.pointer_to)
 #define TYPE_REFERENCE_TO(NODE) (TYPE_CHECK (NODE)->type_common.reference_to)
@@ -2480,7 +2483,7 @@ extern machine_mode vector_type_mode (const_tree);
 #define DECL_INITIAL(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.initial)
 
 /* Holds the size of the datum, in bits, as a tree expression.
-   Need not be constant.  */
+   Need not be constant and may be null.  */
 #define DECL_SIZE(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.size)
 /* Likewise for the size in bytes.  */
 #define DECL_SIZE_UNIT(NODE) (DECL_COMMON_CHECK (NODE)->decl_common.size_unit)