diff options
author | Jakub Jelinek <jakub@redhat.com> | 2014-11-21 14:28:58 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2014-11-21 14:28:58 +0100 |
commit | d8def3cff645c9783670fdd3fec476e5314d9236 (patch) | |
tree | ab903d30cb40fbbded1bbd351e6c2cd113a69f9f | |
parent | 4b8f3f068ae154ad7918e61e0090afc8cebf1339 (diff) | |
download | gcc-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/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 19 |
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 */ |