diff options
author | Jason Merrill <jason@redhat.com> | 2010-05-05 15:33:11 -0400 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2010-05-05 15:33:11 -0400 |
commit | 564a129d2270cd6cd14683013483b1471f0d04f1 (patch) | |
tree | 2f0d1539c4a77f271f5a52bc32ed5f1726956909 /gcc/config/rs6000 | |
parent | 58c13acc6abf49f392d72d269e6c0a88eae25319 (diff) | |
download | gcc-564a129d2270cd6cd14683013483b1471f0d04f1.zip gcc-564a129d2270cd6cd14683013483b1471f0d04f1.tar.gz gcc-564a129d2270cd6cd14683013483b1471f0d04f1.tar.bz2 |
re PR testsuite/43758 (19 new GCC HEAD@158360 regressions)
PR testsuite/43758
* target.h (struct gcc_target): Add attribute_takes_identifier_p.
* target_def.h (TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
(TARGET_INITIALIZER): Use it.
* c-common.c (attribute_takes_identifier_p): Call it.
* c-common.h: Update prototype.
* config/rs6000/rs6000.c (rs6000_attribute_takes_identifier_p): New.
(TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
From-SVN: r159079
Diffstat (limited to 'gcc/config/rs6000')
-rw-r--r-- | gcc/config/rs6000/rs6000.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 1360bf4..d1616e5 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -897,6 +897,7 @@ static bool no_global_regs_above (int, bool); static void rs6000_assemble_visibility (tree, int); #endif static int rs6000_ra_ever_killed (void); +static bool rs6000_attribute_takes_identifier_p (const_tree); static tree rs6000_handle_longcall_attribute (tree *, tree, tree, int, bool *); static tree rs6000_handle_altivec_attribute (tree *, tree, tree, int, bool *); static bool rs6000_ms_bitfield_layout_p (const_tree); @@ -1279,6 +1280,8 @@ static const struct attribute_spec rs6000_attribute_table[] = #define TARGET_ATTRIBUTE_TABLE rs6000_attribute_table #undef TARGET_SET_DEFAULT_TYPE_ATTRIBUTES #define TARGET_SET_DEFAULT_TYPE_ATTRIBUTES rs6000_set_default_type_attributes +#undef TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P +#define TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P rs6000_attribute_takes_identifier_p #undef TARGET_ASM_ALIGNED_DI_OP #define TARGET_ASM_ALIGNED_DI_OP DOUBLE_INT_ASM_OP @@ -23320,6 +23323,15 @@ rs6000_trampoline_init (rtx m_tramp, tree fndecl, rtx cxt) } +/* 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 +rs6000_attribute_takes_identifier_p (const_tree attr_id) +{ + return is_attribute_p ("altivec", attr_id); +} + /* Handle the "altivec" attribute. The attribute may have arguments as follows: |