diff options
author | Joseph Myers <jsm28@cam.ac.uk> | 2001-07-09 00:12:31 +0100 |
---|---|---|
committer | Joseph Myers <jsm28@gcc.gnu.org> | 2001-07-09 00:12:31 +0100 |
commit | b41df7f63cca6fda7f1c50780025018282a08504 (patch) | |
tree | 1aa1afa6b0fc20cb00375b32ea88cf9d9e1138a3 | |
parent | 648c546a36511c9dd8f8e5bd59a8210a90b9d0da (diff) | |
download | gcc-b41df7f63cca6fda7f1c50780025018282a08504.zip gcc-b41df7f63cca6fda7f1c50780025018282a08504.tar.gz gcc-b41df7f63cca6fda7f1c50780025018282a08504.tar.bz2 |
* doc/c-tree.texi: Document representation of attributes.
From-SVN: r43854
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/doc/c-tree.texi | 35 |
2 files changed, 39 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 39eb306..c84a3b2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2001-07-09 Joseph S. Myers <jsm28@cam.ac.uk> + + * doc/c-tree.texi: Document representation of attributes. + 2001-07-08 Joseph S. Myers <jsm28@cam.ac.uk> * doc/tm.texi: Update some places for the rename of target to diff --git a/gcc/doc/c-tree.texi b/gcc/doc/c-tree.texi index 8fb7a7a..aa976e8 100644 --- a/gcc/doc/c-tree.texi +++ b/gcc/doc/c-tree.texi @@ -53,6 +53,7 @@ should submit your patches for inclusion in GCC@. * Scopes:: Namespaces and classes. * Functions:: Overloading, function bodies, and linkage. * Declarations:: Type declarations and variables. +* Attributes:: Declaration and type attributes. * Expression trees:: From @code{typeid} to @code{throw}. @end menu @@ -1657,6 +1658,40 @@ The @code{WHILE_BODY} is the body of the loop. @end table @c --------------------------------------------------------------------- +@c Attributes +@c --------------------------------------------------------------------- +@node Attributes +@section Attributes in trees +@cindex attributes + +Attributes, as specified using the @code{__attribute__} keyword, are +represented internally as a @code{TREE_LIST}. The @code{TREE_PURPOSE} +is the name of the attribute, as an @code{IDENTIFIER_NODE}. The +@code{TREE_VALUE} is a @code{TREE_LIST} of the arguments of the +attribute, if any, or @code{NULL_TREE} if there are no arguments; the +arguments are stored as the @code{TREE_VALUE} of successive entries in +the list, and may be identifiers or expressions. The @code{TREE_CHAIN} +of the attribute is the next attribute in a list of attributes applying +to the same declaration or type, or @code{NULL_TREE} if there are no +further attributes in the list. + +Attributes may be attached to declarations and to types; these +attributes may be accessed with the following macros. At present only +machine-dependent attributes are stored in this way (other attributes +cause changes to the declaration or type or to other internal compiler +data structures, but are not themselves stored along with the +declaration or type), but in future all attributes may be stored like +this. + +@deftypefn {Tree Macro} tree DECL_MACHINE_ATTRIBUTES (tree @var{decl}) +This macro returns the attributes on the declaration @var{decl}. +@end deftypefn + +@deftypefn {Tree Macro} tree TYPE_ATTRIBUTES (tree @var{type}) +This macro returns the attributes on the type @var{type}. +@end deftypefn + +@c --------------------------------------------------------------------- @c Expressions @c --------------------------------------------------------------------- |