Commit: M32R: Fix handling of the __model__ attribute
Nick Clifton
nickc@redhat.com
Fri Jul 31 16:10:00 GMT 2015
Hi Guys,
I am checking in the patch below to fix the M32R port's handling of
its __model__ attribute. This attribute takes a parameter identifying
the memory model to use, but gcc was not being told to expect this
identifier.
Cheers
Nick
gcc/ChangeLog
2015-07-31 Nick Clifton <nickc@redhat.com>
* config/m32r/m32r.c (m32r_attribute_identifier): New function.
Returns true for __model__.
(TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P): Define.
Index: gcc/config/m32r/m32r.c
===================================================================
--- gcc/config/m32r/m32r.c (revision 226444)
+++ gcc/config/m32r/m32r.c (working copy)
@@ -113,6 +113,7 @@
static void m32r_conditional_register_usage (void);
static void m32r_trampoline_init (rtx, tree, rtx);
static bool m32r_legitimate_constant_p (machine_mode, rtx);
+static bool m32r_attribute_identifier (const_tree);
/* M32R specific attributes. */
@@ -129,6 +130,8 @@
/* Initialize the GCC target structure. */
#undef TARGET_ATTRIBUTE_TABLE
#define TARGET_ATTRIBUTE_TABLE m32r_attribute_table
+#undef TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P
+#define TARGET_ATTRIBUTE_TAKES_IDENTIFIER_P m32r_attribute_identifier
#undef TARGET_LEGITIMATE_ADDRESS_P
#define TARGET_LEGITIMATE_ADDRESS_P m32r_legitimate_address_p
@@ -404,6 +407,13 @@
return NULL_TREE;
}
+
+static bool
+m32r_attribute_identifier (const_tree name)
+{
+ return strcmp (IDENTIFIER_POINTER (name), "model") == 0
+ || strcmp (IDENTIFIER_POINTER (name), "__model__") == 0;
+}
/* Encode section information of DECL, which is either a VAR_DECL,
FUNCTION_DECL, STRING_CST, CONSTRUCTOR, or ???.
More information about the Gcc-patches
mailing list