summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2011-12-01 16:38:21 +0000
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>2011-12-01 16:38:21 +0000
commitc8c597a7f96bda049ef5dd3fe0b9fd95305b940f (patch)
tree1232c7d509003e7701b5efe99f25f860cf4ce4b9
parent1520d45c655436480cec49df3cff0d0a89c2511e (diff)
downloadppe42-gcc-c8c597a7f96bda049ef5dd3fe0b9fd95305b940f.tar.gz
ppe42-gcc-c8c597a7f96bda049ef5dd3fe0b9fd95305b940f.zip
* lto-lang.c (lto_attribute_table): Handle *tm regparm.
(ignore_attribute): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@181882 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/lto/ChangeLog5
-rw-r--r--gcc/lto/lto-lang.c18
2 files changed, 23 insertions, 0 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index af849540ea8..6f13e04220e 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -1,3 +1,8 @@
+2011-12-01 Uros Bizjak <ubizjak@gmail.com>
+
+ * lto-lang.c (lto_attribute_table): Handle *tm regparm.
+ (ignore_attribute): New.
+
2011-11-21 Aldy Hernandez <aldyh@redhat.com>
* lto-lang.c (lto_attribute_table): Handle transaction_pure.
diff --git a/gcc/lto/lto-lang.c b/gcc/lto/lto-lang.c
index 2536f26ebf0..0d230eeddca 100644
--- a/gcc/lto/lto-lang.c
+++ b/gcc/lto/lto-lang.c
@@ -47,6 +47,8 @@ static tree handle_nothrow_attribute (tree *, tree, tree, int, bool *);
static tree handle_sentinel_attribute (tree *, tree, tree, int, bool *);
static tree handle_type_generic_attribute (tree *, tree, tree, int, bool *);
static tree handle_transaction_pure_attribute (tree *, tree, tree, int, bool *);
+static tree ignore_attribute (tree *, tree, tree, int, bool *);
+
static tree handle_format_attribute (tree *, tree, tree, int, bool *);
static tree handle_format_arg_attribute (tree *, tree, tree, int, bool *);
@@ -78,6 +80,10 @@ const struct attribute_spec lto_attribute_table[] =
handle_type_generic_attribute, false },
{ "transaction_pure", 0, 0, false, true, true,
handle_transaction_pure_attribute, false },
+ /* For internal use only. The leading '*' both prevents its usage in
+ source code and signals that it may be overridden by machine tables. */
+ { "*tm regparm", 0, 0, false, true, true,
+ ignore_attribute, false },
{ NULL, 0, 0, false, false, false, NULL, false }
};
@@ -419,6 +425,18 @@ handle_transaction_pure_attribute (tree *node, tree ARG_UNUSED (name),
return NULL_TREE;
}
+/* Ignore the given attribute. Used when this attribute may be usefully
+ overridden by the target, but is not used generically. */
+
+static tree
+ignore_attribute (tree * ARG_UNUSED (node), tree ARG_UNUSED (name),
+ tree ARG_UNUSED (args), int ARG_UNUSED (flags),
+ bool *no_add_attrs)
+{
+ *no_add_attrs = true;
+ return NULL_TREE;
+}
+
/* Handle a "format" attribute; arguments as in
struct attribute_spec.handler. */
OpenPOWER on IntegriCloud