]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
c-tree.texi (RECORD_TYPE, UNION_TYPE): Expand on definition.
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>
Wed, 5 Dec 2001 22:59:09 +0000 (22:59 +0000)
committerRichard Kenner <kenner@gcc.gnu.org>
Wed, 5 Dec 2001 22:59:09 +0000 (17:59 -0500)
* doc/c-tree.texi (RECORD_TYPE, UNION_TYPE): Expand on definition.
(QUAL_UNION_TYPE): New type.

From-SVN: r47699

gcc/ChangeLog
gcc/doc/c-tree.texi

index bb4704a7cee721ec0c17b108de9401f0292f4188..19c5443ab6ba5e9fb5359f5a87b81e0e124e1b89 100644 (file)
@@ -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.
index 3db3d7f10ff794c936c36f0628a28b7a232a8854..4046d18c4b45ee80849e54494e67cc61439fb716 100644 (file)
@@ -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.