aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2014-11-21 14:28:58 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2014-11-21 14:28:58 +0100
commitd8def3cff645c9783670fdd3fec476e5314d9236 (patch)
treeab903d30cb40fbbded1bbd351e6c2cd113a69f9f
parent4b8f3f068ae154ad7918e61e0090afc8cebf1339 (diff)
downloadgcc-d8def3cff645c9783670fdd3fec476e5314d9236.zip
gcc-d8def3cff645c9783670fdd3fec476e5314d9236.tar.gz
gcc-d8def3cff645c9783670fdd3fec476e5314d9236.tar.bz2
re PR testsuite/61137 (FAIL: gcc.target/ia64/small-addr-1.c (test for excess errors))
PR target/61137 * config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function. (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it. From-SVN: r217919
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/ia64/ia64.c19
2 files changed, 25 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 768b396..3470ae2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2014-11-21 Jakub Jelinek <jakub@redhat.com>
+
+ PR target/61137
+ * config/ia64/ia64.c (ia64_attribute_takes_identifier_p): New function.
+ (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Redefine to it.
+
2014-11-21 James Greenhalgh <james.greenhalgh@arm.com>
* config/aarch64/aarch64-simd.md
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index f896e10..860b658 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -324,6 +324,7 @@ static bool ia64_vms_valid_pointer_mode (machine_mode mode)
static tree ia64_vms_common_object_attribute (tree *, tree, tree, int, bool *)
ATTRIBUTE_UNUSED;
+static bool ia64_attribute_takes_identifier_p (const_tree);
static tree ia64_handle_model_attribute (tree *, tree, tree, int, bool *);
static tree ia64_handle_version_id_attribute (tree *, tree, tree, int, bool *);
static void ia64_encode_section_info (tree, rtx, int);
@@ -669,8 +670,26 @@ static const struct attribute_spec ia64_attribute_table[] =
#undef TARGET_VECTORIZE_VEC_PERM_CONST_OK
#define TARGET_VECTORIZE_VEC_PERM_CONST_OK ia64_vectorize_vec_perm_const_ok
+#undef TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P
+#define TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P ia64_attribute_takes_identifier_p
+
struct gcc_target targetm = TARGET_INITIALIZER;
+/* Returns TRUE iff the target attribute indicated by ATTR_ID takes a plain
+ identifier as an argument, so the front end shouldn't look it up. */
+
+static bool
+ia64_attribute_takes_identifier_p (const_tree attr_id)
+{
+ if (is_attribute_p ("model", attr_id))
+ return true;
+#if TARGET_ABI_OPEN_VMS
+ if (is_attribute_p ("common_object", attr_id))
+ return true;
+#endif
+ return false;
+}
+
typedef enum
{
ADDR_AREA_NORMAL, /* normal address area */