aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMartin Sebor <msebor@redhat.com>2019-08-16 15:53:29 +0000
committerMartin Sebor <msebor@gcc.gnu.org>2019-08-16 09:53:29 -0600
commitdc139eb184d5361147ac32c290a074a3bc28e29e (patch)
tree79e7570b244604134636a96de3c8d260e0e63538 /gcc
parentedf2da1e8d16981beaa16a53b81a0f40f6fcb4a0 (diff)
downloadgcc-dc139eb184d5361147ac32c290a074a3bc28e29e.zip
gcc-dc139eb184d5361147ac32c290a074a3bc28e29e.tar.gz
gcc-dc139eb184d5361147ac32c290a074a3bc28e29e.tar.bz2
tree.def (TYPE_SIZE): Clarify.
gcc/ChangeLog: * tree.def (TYPE_SIZE): Clarify. * tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments. From-SVN: r274575
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/tree.def5
-rw-r--r--gcc/tree.h5
3 files changed, 13 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 772c4e9..b5badf3 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/tree.def b/gcc/tree.def
index 4a22d94..bfb486d 100644
--- a/gcc/tree.def
+++ b/gcc/tree.def
@@ -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.
diff --git a/gcc/tree.h b/gcc/tree.h
index b910c5c..37f6d57 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -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)