gccint: Attributes

1 
1 11.5 Attributes in trees
1 ========================
1 
1 Attributes, as specified using the '__attribute__' keyword, are
1 represented internally as a 'TREE_LIST'.  The 'TREE_PURPOSE' is the name
1 of the attribute, as an 'IDENTIFIER_NODE'.  The 'TREE_VALUE' is a
1 'TREE_LIST' of the arguments of the attribute, if any, or 'NULL_TREE' if
1 there are no arguments; the arguments are stored as the 'TREE_VALUE' of
1 successive entries in the list, and may be identifiers or expressions.
1 The 'TREE_CHAIN' of the attribute is the next attribute in a list of
1 attributes applying to the same declaration or type, or 'NULL_TREE' if
1 there are no further attributes in the list.
1 
1  Attributes may be attached to declarations and to types; these
1 attributes may be accessed with the following macros.  All attributes
1 are stored in this way, and many also cause other changes to the
1 declaration or type or to other internal compiler data structures.
1 
1  -- Tree Macro: tree DECL_ATTRIBUTES (tree DECL)
1      This macro returns the attributes on the declaration DECL.
1 
1  -- Tree Macro: tree TYPE_ATTRIBUTES (tree TYPE)
1      This macro returns the attributes on the type TYPE.
1