aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/rs6000
diff options
context:
space:
mode:
authorJason Merrill <jason@redhat.com>2010-05-05 15:33:11 -0400
committerJason Merrill <jason@gcc.gnu.org>2010-05-05 15:33:11 -0400
commit564a129d2270cd6cd14683013483b1471f0d04f1 (patch)
tree2f0d1539c4a77f271f5a52bc32ed5f1726956909 /gcc/config/rs6000
parent58c13acc6abf49f392d72d269e6c0a88eae25319 (diff)
downloadgcc-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.c12
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: