This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Refinements to attribute change
- To: gcc-patches at gcc dot gnu dot org
- Subject: Refinements to attribute change
- From: kenner at vlsi1 dot ultra dot nyu dot edu (Richard Kenner)
- Date: Sat, 22 Sep 01 11:19:48 EDT
Sat Sep 22 09:09:32 2001 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
* c-common.c (format_attribute_table): Remove decl.
* tree.h (format_attribute_table, lang_attribute_table): New decls.
(lang_attribute_common): Likewise.
*** c-common.c 2001/09/22 13:14:34 1.254
--- c-common.c 2001/09/22 14:54:34
*************** static const struct attribute_spec c_for
*** 3785,3790 ****
};
- extern const struct attribute_spec *format_attribute_table;
-
/* Do the parts of lang_init common to C and C++. */
void
--- 3785,3788 ----
*** tree.h 2001/09/22 13:14:35 1.267
--- tree.h 2001/09/22 14:54:48
*************** extern int setjmp_call_p PARAMS ((tree)
*** 2908,2912 ****
--- 2908,2930 ----
/* In attribs.c. */
+
+ /* Process the attributes listed in ATTRIBUTES and install them in *NODE,
+ which is either a DECL (including a TYPE_DECL) or a TYPE. If a DECL,
+ it should be modified in place; if a TYPE, a copy should be created
+ unless ATTR_FLAG_TYPE_IN_PLACE is set in FLAGS. FLAGS gives further
+ information, in the form of a bitwise OR of flags in enum attribute_flags
+ from tree.h. Depending on these flags, some attributes may be
+ returned to be applied at a later stage (for example, to apply
+ a decl attribute to the declaration rather than to its type). */
extern tree decl_attributes PARAMS ((tree *, tree, int));
+
+ /* Table of machine-independent attributes for checking formats, if used. */
+ extern const struct attribute_spec *format_attribute_table;
+
+ /* Table of machine-independent attributes for a particular language. */
+ extern const struct attribute_spec *lang_attribute_table;
+
+ /* Flag saying whether common language attributes are to be supported. */
+ extern int lang_attribute_common;
/* In front end. */