This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

PATCH to cp/ir.texi



This bit documents some tree nodes used to represent various entities
in g++.

OK?

-- Gaby
CodeSourcery, LLC		http://www.codesourcery.com
       http://www.codesourcery.com/gcc-compile.shtml

2000-09-07  Gabriel Dos Reis  <gdr@codesourcery.com>

	* ir.texi: Document type nodes.

Index: ir.texi
===================================================================
RCS file: /cvs/gcc/egcs/gcc/cp/ir.texi,v
retrieving revision 1.33
diff -p -r1.33 ir.texi
*** ir.texi	2000/08/26 18:26:52	1.33
--- ir.texi	2000/09/07 07:06:57
*************** The elements are indexed from zero.
*** 319,329 ****
--- 319,334 ----
  @tindex ARRAY_TYPE
  @tindex RECORD_TYPE
  @tindex UNION_TYPE
+ @tindex UNKNOWN_TYPE
+ @tindex OFFSET_TYPE
+ @tindex TYPENAME_TYPE
+ @tindex TYPEOF_TYPE
  @findex CP_TYPE_QUALS
  @findex TYPE_UNQUALIFIED
  @findex TYPE_QUAL_CONST
  @findex TYPE_QUAL_VOLATILE
  @findex TYPE_QUAL_RESTRICT
+ @findex TYPE_MAIN_VARIANT
  @cindex qualified type
  @findex TYPE_SIZE
  @findex TYPE_ALIGN
*************** The elements are indexed from zero.
*** 331,336 ****
--- 336,347 ----
  @findex TYPE_ARG_TYPES
  @findex TYPE_METHOD_BASETYPE
  @findex TYPE_PTRMEM_P
+ @findex TYPE_OFFSET_BASETYPE
+ @findex TREE_TYPE
+ @findex TYPE_CONTEXT
+ @findex TYPE_NAME
+ @findex TYPENAME_TYPE_FULLNAME
+ @findex TYPE_FIELDS
  
  All C++ types have corresponding tree nodes.  However, you should not
  assume that there is exactly one tree node corresponding to each C++
*************** this type is a pointer-to-member type.  
*** 517,522 ****
--- 528,559 ----
  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 UNKNOWN_TYPE
+ This node is used to represent a type the knowledge of which is
+ unsufficiant for a sound processing.
+ 
+ @item OFFSET_TYPE
+ This node is used to represent a data member; for example a
+ pointer-to-data-member is represented by a @code{POINTER_TYPE} whose
+ @code{TREE_TYPE} is an @code{OFFSET_TYPE}.  For a data member @code{X::m}
+ the @code{TYPE_OFFSET_BASETYPE} is @code{X} and the @code{TREE_TYPE} is
+ the type of @code{m}.
+ 
+ @item TYPENAME_TYPE
+ Used to represent a construct of the form @code{typename T::A}.  The
+ @code{TYPE_CONTEXT} is @code{T}; the @code{TYPE_NAME} is an
+ @code{IDENTIFIER_NODE} for @code{A}. If the type is specified via a
+ template-id, then @code{TYPENAME_TYPE_FULLNAME} yields a
+ @code{TEMPLATE_ID_EXPR}.  The @code{TREE_TYPE} is non-@code{NULL} if the
+ node is implicitly generated in support for the implicit typename
+ extension; in which case the @code{TREE_TYPE} is a type node for the
+ base-class.
+ 
+ @item TYPEOF_TYPE
+ 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}.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]