Part 2 of the series contains the mechanical changes to all
the back ends and to front ends other than C and C++. There
are no functional changes here.
Martin
PR c/81544 - attribute noreturn and warn_unused_result on the same function accepted
gcc/ChangeLog:
PR c/81544
* config/alpha/alpha.c (vms_attribute_table): Initialize new member
of struct attribute_spec.
* config/arm/arm.c (arm_attribute_table): Same.
* config/avr/avr.c ( avr_attribute_table): Same.
* config/bfin/bfin.c (bfin_attribute_table): Same.
* config/cr16/cr16.c (cr16_attribute_table): Same.
* config/epiphany/epiphany.c (epiphany_attribute_table): Same.
* config/h8300/h8300.c (h8300_attribute_table): Same.
* config/i386/i386.c (ix86_attribute_table): Same.
* config/ia64/ia64.c (ia64_attribute_table): Same.
* config/m32c/m32c.c (m32c_attribute_table): Same.
* config/m32r/m32r.c (m32r_attribute_table): Same.
* config/m68k/m68k.c (m68k_attribute_table): Same.
* config/mcore/mcore.c (mcore_attribute_table): Same.
* config/mips/mips.c (mips_attribute_table): Same.
* config/nds32/nds32.c (nds32_attribute_table): Same.
* config/nvptx/nvptx.c (nvptx_attribute_table): Same.
* config/powerpcspe/powerpcspe.c (rs6000_attribute_table): Same.
* config/rs6000/rs6000.c (rs6000_attribute_table): Same.
* config/s390/s390.c (s390_handle_vectorbool_attribute): Same.
* config/sh/sh.c (sh_attribute_table): Same.
* config/sparc/sparc.c (sparc_attribute_table): Same.
* config/spu/spu.c (spu_attribute_table): Same.
* config/stormy16/stormy16.c (xstormy16_attribute_table): Same.
* config/v850/v850.c (v850_attribute_table): Same.
* config/visium/visium.c (visium_attribute_table): Same.
gcc/ada/ChangeLog:
PR c/81544
* gcc-interface/utils.c (gnat_internal_attribute_table): Initialize
new member of struct attribute_spec.
gcc/fortran/ChangeLog:
PR c/81544
* f95-lang.c (gfc_attribute_table): Initialize new member of struct
attribute_spec.
gcc/lto/ChangeLog:
PR c/81544
* lto-lang.c (lto_attribute_table): Initialize new member of struct
attribute_spec.
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index 341ec20..06147e6 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -7488,9 +7488,10 @@ common_object_handler (tree *node, tree name ATTRIBUTE_UNUSED,
static const struct attribute_spec vms_attribute_table[] =
{
/* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity } */
- { COMMON_OBJECT, 0, 1, true, false, false, common_object_handler, false },
- { NULL,0, 0, false, false, false, NULL, false }
+ affects_type_identity, exclusions } */
+ { COMMON_OBJECT, 0, 1, true, false, false, common_object_handler, false,
+NULL },
+ { NULL,0, 0, false, false, false, NULL, false, NULL }
};
void
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 25677d1..f5d30bd 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -317,24 +317,24 @@ static machine_mode arm_floatn_mode (int, bool);
static const struct attribute_spec arm_attribute_table[] =
{
/* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity } */
+ affects_type_identity, exclusions } */
/* Function calls made to this symbol must be done indirectly, because
it may lie outside of the 26 bit addressing range of a normal function
call. */
- { "long_call",0, 0, false, true, true, NULL, false },
+ { "long_call",0, 0, false, true, true, NULL, false, NULL },
/* Whereas these functions are always known to reside within the 26 bit
addressing range. */
- { "short_call", 0, 0, false, true, true, NULL, false },
+ { "short_call", 0, 0, false, true, true, NULL, false, NULL },
/* Specify the procedure call conventions for a function. */
{ "pcs", 1, 1, false, true, true, arm_handle_pcs_attribute,
-false },
+false, NULL },
/* Interrupt Service Routines have special prologue and epilogue requirements. */
{ "isr", 0, 1, false, false, false, arm_handle_isr_attribute,
-false },
+false, NULL },
{ "interrupt",0, 1, false, false, false, arm_handle_isr_attribute,
-false },
+false, NULL },
{ "naked",0, 0, true, false, false, arm_handle_fndecl_attribute,
-false },
+false, NULL },
#ifdef ARM_PE
/* ARM/PE has three new attributes:
interfacearm - ?
@@ -345,22 +345,24 @@ static const struct attribute_spec arm_attribute_table[] =
them with spaces. We do NOT support this. Instead, use __declspec
multiple times.
*/
- { "dllimport",0, 0, true, false, false, NULL, false },
- { "dllexport",0, 0, true, false, false, NULL, false },
+ { "dllimport",0, 0, true, false, false, NULL, false, NULL },
+ { "dllexport",0, 0, true, false, false, NULL, false, NULL },
{ "interfacearm", 0, 0, true, false, false, arm_handle_fndecl_attribute,