aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2001-12-05 22:59:09 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2001-12-05 17:59:09 -0500
commitdc4ad6689551f2ed0cb2384856f77fe6b46fc508 (patch)
tree71104031ba59e2d737cc6d82e1c78ae0941d4967
parent0974a3b8227d2d410e865528592b4d2516b46c88 (diff)
downloadgcc-dc4ad6689551f2ed0cb2384856f77fe6b46fc508.zip
gcc-dc4ad6689551f2ed0cb2384856f77fe6b46fc508.tar.gz
gcc-dc4ad6689551f2ed0cb2384856f77fe6b46fc508.tar.bz2
c-tree.texi (RECORD_TYPE, UNION_TYPE): Expand on definition.
* doc/c-tree.texi (RECORD_TYPE, UNION_TYPE): Expand on definition. (QUAL_UNION_TYPE): New type. From-SVN: r47699
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/doc/c-tree.texi36
2 files changed, 29 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index bb4704a..19c5443 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
Wed Dec 5 16:03:04 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
+ * doc/c-tree.texi (RECORD_TYPE, UNION_TYPE): Expand on definition.
+ (QUAL_UNION_TYPE): New type.
+
* varasm.c (output_constant, case ERROR_MARK): New case.
* attribs.c (handle_no_check_memory_usage_atribute): Deleted.
diff --git a/gcc/doc/c-tree.texi b/gcc/doc/c-tree.texi
index 3db3d7f..4046d18 100644
--- a/gcc/doc/c-tree.texi
+++ b/gcc/doc/c-tree.texi
@@ -523,13 +523,32 @@ in the array.
@item RECORD_TYPE
Used to represent @code{struct} and @code{class} types, as well as
-pointers to member functions. If @code{TYPE_PTRMEMFUNC_P} holds, then
-this type is a pointer-to-member type. In that case, the
-@code{TYPE_PTRMEMFUNC_FN_TYPE} is a @code{POINTER_TYPE} pointing to a
-@code{METHOD_TYPE}. The @code{METHOD_TYPE} is the type of a function
-pointed to by the pointer-to-member function. If
-@code{TYPE_PTRMEMFUNC_P} does not hold, this type is a class type. For
-more information, see @pxref{Classes}.
+pointers to member functions and similar constructs in other languages.
+@code{TYPE_FIELDS} contains the items contained in this type, each of
+which can be a @code{FIELD_DECL}, @code{VAR_DECL}, @code{CONST_DECL}, or
+@code{TYPE_DECL}. You may not make any assumptions about the ordering
+of the fields in the type or whether one or more of them overlap. If
+@code{TYPE_PTRMEMFUNC_P} holds, then this type is a pointer-to-member
+type. In that case, the @code{TYPE_PTRMEMFUNC_FN_TYPE} is a
+@code{POINTER_TYPE} pointing to a @code{METHOD_TYPE}. The
+@code{METHOD_TYPE} is the type of a function pointed to by the
+pointer-to-member function. If @code{TYPE_PTRMEMFUNC_P} does not hold,
+this type is a class type. For more information, see @pxref{Classes}.
+
+@item UNION_TYPE
+Used to represent @code{union} types. Similar to @code{RECORD_TYPE}
+except that all @code{FIELD_DECL} nodes in @code{TYPE_FIELD} start at
+bit position zero.
+
+@item QUAL_UNION_TYPE
+Used to represent part of a variant record in Ada. Similar to
+@code{UNION_TYPE} except that each @code{FIELD_DECL} has a
+@code{DECL_QUALIFIER} field, which contains a boolean expression that
+indicates whether the field is present in the object. The type will only
+have one field, so each field's @code{DECL_QUALIFIER} is only evaluated
+if none of the expressions in the previous fields in @code{TYPE_FIELDS}
+are nonzero. Normally these expressions will reference a field in the
+outer object using a @code{PLACEHOLDER_EXPR}.
@item UNKNOWN_TYPE
This node is used to represent a type the knowledge of which is
@@ -556,9 +575,6 @@ base-class.
Used to represent the @code{__typeof__} extension. The
@code{TYPE_FIELDS} is the expression the type of which is being
represented.
-
-@item UNION_TYPE
-Used to represent @code{union} types. For more information, @pxref{Classes}.
@end table
There are variables whose values represent some of the basic types.