From dc4ad6689551f2ed0cb2384856f77fe6b46fc508 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Wed, 5 Dec 2001 22:59:09 +0000 Subject: 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 --- gcc/ChangeLog | 3 +++ gcc/doc/c-tree.texi | 36 ++++++++++++++++++++++++++---------- 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 + * 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. -- cgit v1.1