summaryrefslogtreecommitdiff
path: root/gcc/tree.h
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2012-10-08 12:32:37 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2012-10-08 12:32:37 +0000
commit313d62a349ecb8ad8a419783fe776c7ecd5384d0 (patch)
tree7717c5e62d64af14c96a1abe2b5c0bd6b8300db2 /gcc/tree.h
parenta540eb41c1e6735a9a0b9c549e6be624a25c9e6a (diff)
downloadgcc-313d62a349ecb8ad8a419783fe776c7ecd5384d0.tar.gz
2012-10-08 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk rev 192205 using svnmerge.py git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@192206 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree.h')
-rw-r--r--gcc/tree.h30
1 files changed, 20 insertions, 10 deletions
diff --git a/gcc/tree.h b/gcc/tree.h
index ff4ae52e237..e7cef185793 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -4903,12 +4903,12 @@ struct attribute_spec
{
/* The name of the attribute (without any leading or trailing __),
or NULL to mark the end of a table of attributes. */
- const char *const name;
+ const char *name;
/* The minimum length of the list of arguments of the attribute. */
- const int min_length;
+ int min_length;
/* The maximum length of the list of arguments of the attribute
(-1 for no maximum). */
- const int max_length;
+ int max_length;
/* Whether this attribute requires a DECL. If it does, it will be passed
from types of DECLs, function return types and array element types to
the DECLs, function types and array types respectively; but when
@@ -4916,15 +4916,15 @@ struct attribute_spec
a warning. (If greater control is desired for a given attribute,
this should be false, and the flags argument to the handler may be
used to gain greater control in that case.) */
- const bool decl_required;
+ bool decl_required;
/* Whether this attribute requires a type. If it does, it will be passed
from a DECL to the type of that DECL. */
- const bool type_required;
+ bool type_required;
/* Whether this attribute requires a function (or method) type. If it does,
it will be passed from a function pointer type to the target type,
and from a function return type (which is not itself a function
pointer type) to the function type. */
- const bool function_type_required;
+ bool function_type_required;
/* Function to handle this attribute. NODE points to the node to which
the attribute is to be applied. If a DECL, it should be modified in
place; if a TYPE, a copy should be created. NAME is the name of the
@@ -4939,10 +4939,10 @@ struct attribute_spec
otherwise the return value should be NULL_TREE. This pointer may be
NULL if no special handling is required beyond the checks implied
by the rest of this structure. */
- tree (*const handler) (tree *node, tree name, tree args,
- int flags, bool *no_add_attrs);
+ tree (*handler) (tree *node, tree name, tree args,
+ int flags, bool *no_add_attrs);
/* Specifies if attribute affects type's identity. */
- const bool affects_type_identity;
+ bool affects_type_identity;
};
/* Flags that may be passed in the third argument of decl_attributes, and
@@ -4967,7 +4967,9 @@ enum attribute_flags
/* The attributes are being applied by default to a library function whose
name indicates known behavior, and should be silently ignored if they
are not in fact compatible with the function type. */
- ATTR_FLAG_BUILT_IN = 16
+ ATTR_FLAG_BUILT_IN = 16,
+ /* A given attribute has been parsed as a C++-11 attribute. */
+ ATTR_FLAG_CXX11 = 32
};
/* Default versions of target-overridable functions. */
@@ -6054,6 +6056,8 @@ extern bool must_pass_in_stack_var_size_or_pad (enum machine_mode, const_tree);
/* In attribs.c. */
extern const struct attribute_spec *lookup_attribute_spec (const_tree);
+extern const struct attribute_spec *lookup_scoped_attribute_spec (const_tree,
+ const_tree);
extern void init_attributes (void);
@@ -6067,6 +6071,12 @@ extern void init_attributes (void);
a decl attribute to the declaration rather than to its type). */
extern tree decl_attributes (tree *, tree, int);
+extern bool cxx11_attribute_p (const_tree);
+
+extern tree get_attribute_name (const_tree);
+
+extern tree get_attribute_namespace (const_tree);
+
extern void apply_tm_attr (tree, tree);
/* In stor-layout.c */