diff options
author | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-08 23:12:31 +0000 |
---|---|---|
committer | jsm28 <jsm28@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-07-08 23:12:31 +0000 |
commit | 99effa892619f1b403a32fc900b0ac69f3561591 (patch) | |
tree | 1aa1afa6b0fc20cb00375b32ea88cf9d9e1138a3 /gcc | |
parent | 7fe22e19cf5e61db621bb2234ac2b5d6b169a416 (diff) | |
download | gcc-99effa892619f1b403a32fc900b0ac69f3561591.tar.gz |
* doc/c-tree.texi: Document representation of attributes.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@43854 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-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 39eb306a372..c84a3b254ff 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 8fb7a7a717c..aa976e85622 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 --------------------------------------------------------------------- |