aboutsummaryrefslogtreecommitdiff
path: root/gcc/config
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config')
-rw-r--r--gcc/config/alpha/alpha.c8
-rw-r--r--gcc/config/arc/arc.c18
-rw-r--r--gcc/config/arm/arm.c50
-rw-r--r--gcc/config/avr/avr.c55
-rw-r--r--gcc/config/bfin/bfin.c48
-rw-r--r--gcc/config/cr16/cr16.c8
-rw-r--r--gcc/config/darwin.h12
-rw-r--r--gcc/config/epiphany/epiphany.c18
-rw-r--r--gcc/config/h8300/h8300.c34
-rw-r--r--gcc/config/i386/cygming.h8
-rw-r--r--gcc/config/i386/i386.c94
-rw-r--r--gcc/config/ia64/ia64.c20
-rw-r--r--gcc/config/m32c/m32c.c17
-rw-r--r--gcc/config/m32r/m32r.c12
-rw-r--r--gcc/config/m68k/m68k.c18
-rw-r--r--gcc/config/mcore/mcore.c14
-rw-r--r--gcc/config/microblaze/microblaze.c19
-rw-r--r--gcc/config/mips/mips.c36
-rw-r--r--gcc/config/msp430/msp430.c30
-rw-r--r--gcc/config/nds32/nds32.c28
-rw-r--r--gcc/config/nvptx/nvptx.c10
-rw-r--r--gcc/config/powerpcspe/powerpcspe.c26
-rw-r--r--gcc/config/rl78/rl78.c22
-rw-r--r--gcc/config/rs6000/rs6000.c26
-rw-r--r--gcc/config/rx/rx.c22
-rw-r--r--gcc/config/s390/s390.c10
-rw-r--r--gcc/config/sh/sh.c38
-rw-r--r--gcc/config/sol2.h4
-rw-r--r--gcc/config/sparc/sparc.c6
-rw-r--r--gcc/config/spu/spu.c14
-rw-r--r--gcc/config/stormy16/stormy16.c18
-rw-r--r--gcc/config/v850/v850.c32
-rw-r--r--gcc/config/visium/visium.c10
33 files changed, 389 insertions, 396 deletions
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index edf9cb4..63821fc 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -7505,11 +7505,11 @@ 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, exclusions } */
- { COMMON_OBJECT, 0, 1, true, false, false, common_object_handler, false,
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { COMMON_OBJECT, 0, 1, true, false, false, false, common_object_handler,
NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
void
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
index 9974a1f..3fc867f 100644
--- a/gcc/config/arc/arc.c
+++ b/gcc/config/arc/arc.c
@@ -217,25 +217,25 @@ static tree arc_handle_fndecl_attribute (tree *, tree, tree, int, bool *);
machine specific supported attributes. */
const struct attribute_spec arc_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- { "interrupt", 1, 1, true, false, false, arc_handle_interrupt_attribute,
- true, NULL },
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "interrupt", 1, 1, true, false, false, true,
+ arc_handle_interrupt_attribute, NULL },
/* Function calls made to this symbol must be done indirectly, because
it may lie outside of the 21/25 bit addressing range of a normal function
call. */
- { "long_call", 0, 0, false, true, true, NULL, false, NULL },
+ { "long_call", 0, 0, false, true, true, false, NULL, NULL },
/* Whereas these functions are always known to reside within the 25 bit
addressing range of unconditionalized bl. */
- { "medium_call", 0, 0, false, true, true, NULL, false, NULL },
+ { "medium_call", 0, 0, false, true, true, false, NULL, NULL },
/* And these functions are always known to reside within the 21 bit
addressing range of blcc. */
- { "short_call", 0, 0, false, true, true, NULL, false, NULL },
+ { "short_call", 0, 0, false, true, true, false, NULL, NULL },
/* Function which are not having the prologue and epilogue generated
by the compiler. */
- { "naked", 0, 0, true, false, false, arc_handle_fndecl_attribute, false,
+ { "naked", 0, 0, true, false, false, false, arc_handle_fndecl_attribute,
NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
static int arc_comp_type_attributes (const_tree, const_tree);
static void arc_file_start (void);
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 9b29a0a..1b2bcc3 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -322,25 +322,25 @@ static HOST_WIDE_INT arm_constant_alignment (const_tree, HOST_WIDE_INT);
/* Table of machine attributes. */
static const struct attribute_spec arm_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
/* 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, NULL },
+ { "long_call", 0, 0, false, true, true, false, NULL, NULL },
/* Whereas these functions are always known to reside within the 26 bit
addressing range. */
- { "short_call", 0, 0, false, true, true, NULL, false, NULL },
+ { "short_call", 0, 0, false, true, true, false, NULL, NULL },
/* Specify the procedure call conventions for a function. */
- { "pcs", 1, 1, false, true, true, arm_handle_pcs_attribute,
- false, NULL },
+ { "pcs", 1, 1, false, true, true, false, arm_handle_pcs_attribute,
+ NULL },
/* Interrupt Service Routines have special prologue and epilogue requirements. */
- { "isr", 0, 1, false, false, false, arm_handle_isr_attribute,
- false, NULL },
- { "interrupt", 0, 1, false, false, false, arm_handle_isr_attribute,
- false, NULL },
- { "naked", 0, 0, true, false, false, arm_handle_fndecl_attribute,
- false, NULL },
+ { "isr", 0, 1, false, false, false, false, arm_handle_isr_attribute,
+ NULL },
+ { "interrupt", 0, 1, false, false, false, false, arm_handle_isr_attribute,
+ NULL },
+ { "naked", 0, 0, true, false, false, false,
+ arm_handle_fndecl_attribute, NULL },
#ifdef ARM_PE
/* ARM/PE has three new attributes:
interfacearm - ?
@@ -351,24 +351,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, NULL },
- { "dllexport", 0, 0, true, false, false, NULL, false, NULL },
- { "interfacearm", 0, 0, true, false, false, arm_handle_fndecl_attribute,
- false, NULL },
+ { "dllimport", 0, 0, true, false, false, false, NULL, NULL },
+ { "dllexport", 0, 0, true, false, false, false, NULL, NULL },
+ { "interfacearm", 0, 0, true, false, false, false,
+ arm_handle_fndecl_attribute, NULL },
#elif TARGET_DLLIMPORT_DECL_ATTRIBUTES
- { "dllimport", 0, 0, false, false, false, handle_dll_attribute, false,
+ { "dllimport", 0, 0, false, false, false, false, handle_dll_attribute,
NULL },
- { "dllexport", 0, 0, false, false, false, handle_dll_attribute, false,
+ { "dllexport", 0, 0, false, false, false, false, handle_dll_attribute,
NULL },
- { "notshared", 0, 0, false, true, false, arm_handle_notshared_attribute,
- false, NULL },
+ { "notshared", 0, 0, false, true, false, false,
+ arm_handle_notshared_attribute, NULL },
#endif
/* ARMv8-M Security Extensions support. */
- { "cmse_nonsecure_entry", 0, 0, true, false, false,
- arm_handle_cmse_nonsecure_entry, false, NULL },
- { "cmse_nonsecure_call", 0, 0, true, false, false,
- arm_handle_cmse_nonsecure_call, true, NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ { "cmse_nonsecure_entry", 0, 0, true, false, false, false,
+ arm_handle_cmse_nonsecure_entry, NULL },
+ { "cmse_nonsecure_call", 0, 0, true, false, false, true,
+ arm_handle_cmse_nonsecure_call, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
/* Initialize the GCC target structure. */
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index fdae146..39decb8 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -9871,34 +9871,33 @@ avr_eval_addr_attrib (rtx x)
/* AVR attributes. */
-static const struct attribute_spec
-avr_attribute_table[] =
-{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- { "progmem", 0, 0, false, false, false, avr_handle_progmem_attribute,
- false, NULL },
- { "signal", 0, 0, true, false, false, avr_handle_fndecl_attribute,
- false, NULL },
- { "interrupt", 0, 0, true, false, false, avr_handle_fndecl_attribute,
- false, NULL },
- { "no_gccisr", 0, 0, true, false, false, avr_handle_fndecl_attribute,
- false, NULL },
- { "naked", 0, 0, false, true, true, avr_handle_fntype_attribute,
- false, NULL },
- { "OS_task", 0, 0, false, true, true, avr_handle_fntype_attribute,
- false, NULL },
- { "OS_main", 0, 0, false, true, true, avr_handle_fntype_attribute,
- false, NULL },
- { "io", 0, 1, true, false, false, avr_handle_addr_attribute,
- false, NULL },
- { "io_low", 0, 1, true, false, false, avr_handle_addr_attribute,
- false, NULL },
- { "address", 1, 1, true, false, false, avr_handle_addr_attribute,
- false, NULL },
- { "absdata", 0, 0, true, false, false, avr_handle_absdata_attribute,
- false, NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+static const struct attribute_spec avr_attribute_table[] =
+{
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "progmem", 0, 0, false, false, false, false,
+ avr_handle_progmem_attribute, NULL },
+ { "signal", 0, 0, true, false, false, false,
+ avr_handle_fndecl_attribute, NULL },
+ { "interrupt", 0, 0, true, false, false, false,
+ avr_handle_fndecl_attribute, NULL },
+ { "no_gccisr", 0, 0, true, false, false, false,
+ avr_handle_fndecl_attribute, NULL },
+ { "naked", 0, 0, false, true, true, false,
+ avr_handle_fntype_attribute, NULL },
+ { "OS_task", 0, 0, false, true, true, false,
+ avr_handle_fntype_attribute, NULL },
+ { "OS_main", 0, 0, false, true, true, false,
+ avr_handle_fntype_attribute, NULL },
+ { "io", 0, 1, true, false, false, false,
+ avr_handle_addr_attribute, NULL },
+ { "io_low", 0, 1, true, false, false, false,
+ avr_handle_addr_attribute, NULL },
+ { "address", 1, 1, true, false, false, false,
+ avr_handle_addr_attribute, NULL },
+ { "absdata", 0, 0, true, false, false, false,
+ avr_handle_absdata_attribute, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index a594743..96ef232 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -4905,31 +4905,31 @@ bfin_handle_l2_attribute (tree *node, tree ARG_UNUSED (name),
/* Table of valid machine attributes. */
static const struct attribute_spec bfin_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- { "interrupt_handler", 0, 0, false, true, true, handle_int_attribute,
- false, NULL },
- { "exception_handler", 0, 0, false, true, true, handle_int_attribute,
- false, NULL },
- { "nmi_handler", 0, 0, false, true, true, handle_int_attribute, false,
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "interrupt_handler", 0, 0, false, true, true, false,
+ handle_int_attribute, NULL },
+ { "exception_handler", 0, 0, false, true, true, false,
+ handle_int_attribute, NULL },
+ { "nmi_handler", 0, 0, false, true, true, false, handle_int_attribute,
NULL },
- { "nesting", 0, 0, false, true, true, NULL, false, NULL },
- { "kspisusp", 0, 0, false, true, true, NULL, false, NULL },
- { "saveall", 0, 0, false, true, true, NULL, false, NULL },
- { "longcall", 0, 0, false, true, true, bfin_handle_longcall_attribute,
- false, NULL },
- { "shortcall", 0, 0, false, true, true, bfin_handle_longcall_attribute,
- false, NULL },
- { "l1_text", 0, 0, true, false, false, bfin_handle_l1_text_attribute,
- false, NULL },
- { "l1_data", 0, 0, true, false, false, bfin_handle_l1_data_attribute,
- false, NULL },
- { "l1_data_A", 0, 0, true, false, false, bfin_handle_l1_data_attribute,
- false, NULL },
- { "l1_data_B", 0, 0, true, false, false, bfin_handle_l1_data_attribute,
- false, NULL },
- { "l2", 0, 0, true, false, false, bfin_handle_l2_attribute, false, NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ { "nesting", 0, 0, false, true, true, false, NULL, NULL },
+ { "kspisusp", 0, 0, false, true, true, false, NULL, NULL },
+ { "saveall", 0, 0, false, true, true, false, NULL, NULL },
+ { "longcall", 0, 0, false, true, true, false,
+ bfin_handle_longcall_attribute, NULL },
+ { "shortcall", 0, 0, false, true, true, false,
+ bfin_handle_longcall_attribute, NULL },
+ { "l1_text", 0, 0, true, false, false, false,
+ bfin_handle_l1_text_attribute, NULL },
+ { "l1_data", 0, 0, true, false, false, false,
+ bfin_handle_l1_data_attribute, NULL },
+ { "l1_data_A", 0, 0, true, false, false, false,
+ bfin_handle_l1_data_attribute, NULL },
+ { "l1_data_B", 0, 0, true, false, false, false,
+ bfin_handle_l1_data_attribute, NULL },
+ { "l2", 0, 0, true, false, false, false, bfin_handle_l2_attribute, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
/* Implementation of TARGET_ASM_INTEGER. When using FD-PIC, we need to
diff --git a/gcc/config/cr16/cr16.c b/gcc/config/cr16/cr16.c
index bd4e028..70c0e34 100644
--- a/gcc/config/cr16/cr16.c
+++ b/gcc/config/cr16/cr16.c
@@ -206,10 +206,10 @@ static void cr16_print_operand_address (FILE *, machine_mode, rtx);
/* Table of machine attributes. */
static const struct attribute_spec cr16_attribute_table[] = {
/* ISRs have special prologue and epilogue requirements. */
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions }. */
- {"interrupt", 0, 0, false, true, true, NULL, false, NULL},
- {NULL, 0, 0, false, false, false, NULL, false, NULL}
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude }. */
+ {"interrupt", 0, 0, false, true, true, false, NULL, NULL},
+ {NULL, 0, 0, false, false, false, false, NULL, NULL}
};
/* TARGET_ASM_UNALIGNED_xx_OP generates .?byte directive
diff --git a/gcc/config/darwin.h b/gcc/config/darwin.h
index d20c864..c20a484 100644
--- a/gcc/config/darwin.h
+++ b/gcc/config/darwin.h
@@ -740,12 +740,12 @@ extern GTY(()) section * darwin_sections[NUM_DARWIN_SECTIONS];
/* Extra attributes for Darwin. */
#define SUBTARGET_ATTRIBUTE_TABLE \
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler, \
- affects_type_identity, exclusions } */ \
- { "apple_kext_compatibility", 0, 0, false, true, false, \
- darwin_handle_kext_attribute, false, NULL }, \
- { "weak_import", 0, 0, true, false, false, \
- darwin_handle_weak_import_attribute, false, NULL }
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req, \
+ affects_type_identity, handler, exclude } */ \
+ { "apple_kext_compatibility", 0, 0, false, true, false, false, \
+ darwin_handle_kext_attribute, NULL }, \
+ { "weak_import", 0, 0, true, false, false, false, \
+ darwin_handle_weak_import_attribute, NULL }
/* Make local constant labels linker-visible, so that if one follows a
weak_global constant, ld64 will be able to separate the atoms. */
diff --git a/gcc/config/epiphany/epiphany.c b/gcc/config/epiphany/epiphany.c
index dece119..9128231 100644
--- a/gcc/config/epiphany/epiphany.c
+++ b/gcc/config/epiphany/epiphany.c
@@ -460,14 +460,16 @@ epiphany_init_reg_tables (void)
static const struct attribute_spec epiphany_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- { "interrupt", 0, 9, true, false, false, epiphany_handle_interrupt_attribute, true, NULL },
- { "forwarder_section", 1, 1, true, false, false, epiphany_handle_forwarder_attribute, false, NULL },
- { "long_call", 0, 0, false, true, true, NULL, false, NULL },
- { "short_call", 0, 0, false, true, true, NULL, false, NULL },
- { "disinterrupt", 0, 0, false, true, true, NULL, true, NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "interrupt", 0, 9, true, false, false, true,
+ epiphany_handle_interrupt_attribute, NULL },
+ { "forwarder_section", 1, 1, true, false, false, false,
+ epiphany_handle_forwarder_attribute, NULL },
+ { "long_call", 0, 0, false, true, true, false, NULL, NULL },
+ { "short_call", 0, 0, false, true, true, false, NULL, NULL },
+ { "disinterrupt", 0, 0, false, true, true, true, NULL, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
/* Handle an "interrupt" attribute; arguments as in
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c
index d4e8c46..dd5b69c 100644
--- a/gcc/config/h8300/h8300.c
+++ b/gcc/config/h8300/h8300.c
@@ -5424,23 +5424,23 @@ h8300_insert_attributes (tree node, tree *attributes)
static const struct attribute_spec h8300_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- { "interrupt_handler", 0, 0, true, false, false,
- h8300_handle_fndecl_attribute, false, NULL },
- { "saveall", 0, 0, true, false, false,
- h8300_handle_fndecl_attribute, false, NULL },
- { "OS_Task", 0, 0, true, false, false,
- h8300_handle_fndecl_attribute, false, NULL },
- { "monitor", 0, 0, true, false, false,
- h8300_handle_fndecl_attribute, false, NULL },
- { "function_vector", 0, 0, true, false, false,
- h8300_handle_fndecl_attribute, false, NULL },
- { "eightbit_data", 0, 0, true, false, false,
- h8300_handle_eightbit_data_attribute, false, NULL },
- { "tiny_data", 0, 0, true, false, false,
- h8300_handle_tiny_data_attribute, false, NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "interrupt_handler", 0, 0, true, false, false, false,
+ h8300_handle_fndecl_attribute, NULL },
+ { "saveall", 0, 0, true, false, false, false,
+ h8300_handle_fndecl_attribute, NULL },
+ { "OS_Task", 0, 0, true, false, false, false,
+ h8300_handle_fndecl_attribute, NULL },
+ { "monitor", 0, 0, true, false, false, false,
+ h8300_handle_fndecl_attribute, NULL },
+ { "function_vector", 0, 0, true, false, false, false,
+ h8300_handle_fndecl_attribute, NULL },
+ { "eightbit_data", 0, 0, true, false, false, false,
+ h8300_handle_eightbit_data_attribute, NULL },
+ { "tiny_data", 0, 0, true, false, false, false,
+ h8300_handle_tiny_data_attribute, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
diff --git a/gcc/config/i386/cygming.h b/gcc/config/i386/cygming.h
index abc2f61..12233c2 100644
--- a/gcc/config/i386/cygming.h
+++ b/gcc/config/i386/cygming.h
@@ -447,10 +447,10 @@ do { \
#define TARGET_USE_LOCAL_THUNK_ALIAS_P(DECL) (!DECL_ONE_ONLY (DECL))
#define SUBTARGET_ATTRIBUTE_TABLE \
- { "selectany", 0, 0, true, false, false, ix86_handle_selectany_attribute, \
- false, NULL }
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
+ { "selectany", 0, 0, true, false, false, false, \
+ ix86_handle_selectany_attribute, NULL }
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
/* mcount() does not need a counter variable. */
#undef NO_PROFILE_COUNTERS
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 3503743..551395f 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -6270,10 +6270,8 @@ ix86_function_ok_for_sibcall (tree decl, tree exp)
arguments as in struct attribute_spec.handler. */
static tree
-ix86_handle_cconv_attribute (tree *node, tree name,
- tree args,
- int,
- bool *no_add_attrs)
+ix86_handle_cconv_attribute (tree *node, tree name, tree args, int,
+ bool *no_add_attrs)
{
if (TREE_CODE (*node) != FUNCTION_TYPE
&& TREE_CODE (*node) != METHOD_TYPE
@@ -40230,10 +40228,8 @@ x86_order_regs_for_local_alloc (void)
/* Handle a "callee_pop_aggregate_return" attribute; arguments as
in struct attribute_spec handler. */
static tree
-ix86_handle_callee_pop_aggregate_return (tree *node, tree name,
- tree args,
- int,
- bool *no_add_attrs)
+ix86_handle_callee_pop_aggregate_return (tree *node, tree name, tree args, int,
+ bool *no_add_attrs)
{
if (TREE_CODE (*node) != FUNCTION_TYPE
&& TREE_CODE (*node) != METHOD_TYPE
@@ -44711,72 +44707,74 @@ ix86_expand_round_sse4 (rtx op0, rtx op1)
/* Table of valid machine attributes. */
static const struct attribute_spec ix86_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
/* Stdcall attribute says callee is responsible for popping arguments
if they are not variable. */
- { "stdcall", 0, 0, false, true, true, ix86_handle_cconv_attribute,
- true, NULL },
+ { "stdcall", 0, 0, false, true, true, true, ix86_handle_cconv_attribute,
+ NULL },
/* Fastcall attribute says callee is responsible for popping arguments
if they are not variable. */
- { "fastcall", 0, 0, false, true, true, ix86_handle_cconv_attribute,
- true, NULL },
+ { "fastcall", 0, 0, false, true, true, true, ix86_handle_cconv_attribute,
+ NULL },
/* Thiscall attribute says callee is responsible for popping arguments
if they are not variable. */
- { "thiscall", 0, 0, false, true, true, ix86_handle_cconv_attribute,
- true, NULL },
+ { "thiscall", 0, 0, false, true, true, true, ix86_handle_cconv_attribute,
+ NULL },
/* Cdecl attribute says the callee is a normal C declaration */
- { "cdecl", 0, 0, false, true, true, ix86_handle_cconv_attribute,
- true, NULL },
+ { "cdecl", 0, 0, false, true, true, true, ix86_handle_cconv_attribute,
+ NULL },
/* Regparm attribute specifies how many integer arguments are to be
passed in registers. */
- { "regparm", 1, 1, false, true, true, ix86_handle_cconv_attribute,
- true, NULL },
+ { "regparm", 1, 1, false, true, true, true, ix86_handle_cconv_attribute,
+ NULL },
/* Sseregparm attribute says we are using x86_64 calling conventions
for FP arguments. */
- { "sseregparm", 0, 0, false, true, true, ix86_handle_cconv_attribute,
- true, NULL },
+ { "sseregparm", 0, 0, false, true, true, true, ix86_handle_cconv_attribute,
+ NULL },
/* The transactional memory builtins are implicitly regparm or fastcall
depending on the ABI. Override the generic do-nothing attribute that
these builtins were declared with. */
- { "*tm regparm", 0, 0, false, true, true, ix86_handle_tm_regparm_attribute,
- true, NULL },
+ { "*tm regparm", 0, 0, false, true, true, true,
+ ix86_handle_tm_regparm_attribute, NULL },
/* force_align_arg_pointer says this function realigns the stack at entry. */
{ (const char *)&ix86_force_align_arg_pointer_string, 0, 0,
- false, true, true, ix86_handle_force_align_arg_pointer_attribute, false,
+ false, true, true, false, ix86_handle_force_align_arg_pointer_attribute,
NULL },
#if TARGET_DLLIMPORT_DECL_ATTRIBUTES
- { "dllimport", 0, 0, false, false, false, handle_dll_attribute, false, NULL },
- { "dllexport", 0, 0, false, false, false, handle_dll_attribute, false, NULL },
- { "shared", 0, 0, true, false, false, ix86_handle_shared_attribute,
- false, NULL },
+ { "dllimport", 0, 0, false, false, false, false, handle_dll_attribute,
+ NULL },
+ { "dllexport", 0, 0, false, false, false, false, handle_dll_attribute,
+ NULL },
+ { "shared", 0, 0, true, false, false, false,
+ ix86_handle_shared_attribute, false, NULL },
#endif
- { "ms_struct", 0, 0, false, false, false, ix86_handle_struct_attribute,
- false, NULL },
- { "gcc_struct", 0, 0, false, false, false, ix86_handle_struct_attribute,
- false, NULL },
+ { "ms_struct", 0, 0, false, false, false, false,
+ ix86_handle_struct_attribute, NULL },
+ { "gcc_struct", 0, 0, false, false, false, false,
+ ix86_handle_struct_attribute, NULL },
#ifdef SUBTARGET_ATTRIBUTE_TABLE
SUBTARGET_ATTRIBUTE_TABLE,
#endif
/* ms_abi and sysv_abi calling convention function attributes. */
- { "ms_abi", 0, 0, false, true, true, ix86_handle_abi_attribute, true, NULL },
- { "sysv_abi", 0, 0, false, true, true, ix86_handle_abi_attribute, true,
+ { "ms_abi", 0, 0, false, true, true, true, ix86_handle_abi_attribute, NULL },
+ { "sysv_abi", 0, 0, false, true, true, true, ix86_handle_abi_attribute,
NULL },
- { "ms_abi va_list", 0, 0, false, false, false, NULL, false, NULL },
- { "sysv_abi va_list", 0, 0, false, false, false, NULL, false, NULL },
- { "ms_hook_prologue", 0, 0, true, false, false, ix86_handle_fndecl_attribute,
- false, NULL },
- { "callee_pop_aggregate_return", 1, 1, false, true, true,
- ix86_handle_callee_pop_aggregate_return, true, NULL },
- { "interrupt", 0, 0, false, true, true,
- ix86_handle_interrupt_attribute, false, NULL },
- { "no_caller_saved_registers", 0, 0, false, true, true,
- ix86_handle_no_caller_saved_registers_attribute, false, NULL },
- { "naked", 0, 0, true, false, false,
- ix86_handle_fndecl_attribute, false, NULL },
+ { "ms_abi va_list", 0, 0, false, false, false, false, NULL, NULL },
+ { "sysv_abi va_list", 0, 0, false, false, false, false, NULL, NULL },
+ { "ms_hook_prologue", 0, 0, true, false, false, false,
+ ix86_handle_fndecl_attribute, NULL },
+ { "callee_pop_aggregate_return", 1, 1, false, true, true, true,
+ ix86_handle_callee_pop_aggregate_return, NULL },
+ { "interrupt", 0, 0, false, true, true, false,
+ ix86_handle_interrupt_attribute, NULL },
+ { "no_caller_saved_registers", 0, 0, false, true, true, false,
+ ix86_handle_no_caller_saved_registers_attribute, NULL },
+ { "naked", 0, 0, true, false, false, false,
+ ix86_handle_fndecl_attribute, NULL },
/* End element. */
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
/* Implement targetm.vectorize.builtin_vectorization_cost. */
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index ad4bb17..b16c340 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -359,18 +359,18 @@ static bool ia64_expand_vec_perm_const_1 (struct expand_vec_perm_d *d);
/* Table of valid machine attributes. */
static const struct attribute_spec ia64_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- { "syscall_linkage", 0, 0, false, true, true, NULL, false, NULL },
- { "model", 1, 1, true, false, false, ia64_handle_model_attribute,
- false, NULL },
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "syscall_linkage", 0, 0, false, true, true, false, NULL, NULL },
+ { "model", 1, 1, true, false, false, false,
+ ia64_handle_model_attribute, NULL },
#if TARGET_ABI_OPEN_VMS
- { "common_object", 1, 1, true, false, false,
- ia64_vms_common_object_attribute, false, NULL },
+ { "common_object", 1, 1, true, false, false, false,
+ ia64_vms_common_object_attribute, NULL },
#endif
- { "version_id", 1, 1, true, false, false,
- ia64_handle_version_id_attribute, false, NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ { "version_id", 1, 1, true, false, false, false,
+ ia64_handle_version_id_attribute, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
/* Initialize the GCC target structure. */
diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c
index 281b54c..244e6bc 100644
--- a/gcc/config/m32c/m32c.c
+++ b/gcc/config/m32c/m32c.c
@@ -3000,14 +3000,15 @@ current_function_special_page_vector (rtx x)
#undef TARGET_ATTRIBUTE_TABLE
#define TARGET_ATTRIBUTE_TABLE m32c_attribute_table
static const struct attribute_spec m32c_attribute_table[] = {
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- {"interrupt", 0, 0, false, false, false, interrupt_handler, false, NULL},
- {"bank_switch", 0, 0, false, false, false, interrupt_handler, false, NULL},
- {"fast_interrupt", 0, 0, false, false, false, interrupt_handler, false, NULL},
- {"function_vector", 1, 1, true, false, false, function_vector_handler,
- false, NULL},
- {0, 0, 0, 0, 0, 0, 0, false, NULL}
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "interrupt", 0, 0, false, false, false, false, interrupt_handler, NULL },
+ { "bank_switch", 0, 0, false, false, false, false, interrupt_handler, NULL },
+ { "fast_interrupt", 0, 0, false, false, false, false,
+ interrupt_handler, NULL },
+ { "function_vector", 1, 1, true, false, false, false,
+ function_vector_handler, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
#undef TARGET_COMP_TYPE_ATTRIBUTES
diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c
index bcca103..830e7e7 100644
--- a/gcc/config/m32r/m32r.c
+++ b/gcc/config/m32r/m32r.c
@@ -110,12 +110,12 @@ static HOST_WIDE_INT m32r_starting_frame_offset (void);
static const struct attribute_spec m32r_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- { "interrupt", 0, 0, true, false, false, NULL, false, NULL },
- { "model", 1, 1, true, false, false, m32r_handle_model_attribute,
- false, NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "interrupt", 0, 0, true, false, false, false, NULL, NULL },
+ { "model", 1, 1, true, false, false, false, m32r_handle_model_attribute,
+ NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
/* Initialize the GCC target structure. */
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index c5b034a..075ab47 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -347,15 +347,15 @@ static bool m68k_modes_tieable_p (machine_mode, machine_mode);
static const struct attribute_spec m68k_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- { "interrupt", 0, 0, true, false, false, m68k_handle_fndecl_attribute,
- false },
- { "interrupt_handler", 0, 0, true, false, false,
- m68k_handle_fndecl_attribute, false, NULL },
- { "interrupt_thread", 0, 0, true, false, false,
- m68k_handle_fndecl_attribute, false, NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "interrupt", 0, 0, true, false, false, false,
+ m68k_handle_fndecl_attribute, NULL },
+ { "interrupt_handler", 0, 0, true, false, false, false,
+ m68k_handle_fndecl_attribute, NULL },
+ { "interrupt_thread", 0, 0, true, false, false, false,
+ m68k_handle_fndecl_attribute, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
struct gcc_target targetm = TARGET_INITIALIZER;
diff --git a/gcc/config/mcore/mcore.c b/gcc/config/mcore/mcore.c
index af36ebe..4bd1671 100644
--- a/gcc/config/mcore/mcore.c
+++ b/gcc/config/mcore/mcore.c
@@ -151,13 +151,13 @@ static bool mcore_modes_tieable_p (machine_mode, machine_mode);
static const struct attribute_spec mcore_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- { "dllexport", 0, 0, true, false, false, NULL, false, NULL },
- { "dllimport", 0, 0, true, false, false, NULL, false, NULL },
- { "naked", 0, 0, true, false, false, mcore_handle_naked_attribute,
- false, NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "dllexport", 0, 0, true, false, false, false, NULL, NULL },
+ { "dllimport", 0, 0, true, false, false, false, NULL, NULL },
+ { "naked", 0, 0, true, false, false, false,
+ mcore_handle_naked_attribute, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
/* Initialize the GCC target structure. */
diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
index acdff6c..a808bd0 100644
--- a/gcc/config/microblaze/microblaze.c
+++ b/gcc/config/microblaze/microblaze.c
@@ -215,18 +215,13 @@ int fast_interrupt;
int save_volatiles;
const struct attribute_spec microblaze_attribute_table[] = {
- /* name min_len, max_len, decl_req, type_req, fn_type, req_handler,
- affects_type_identity, exclusions */
- {"interrupt_handler", 0, 0, true, false, false, NULL,
- false, NULL },
- {"break_handler", 0, 0, true, false, false, NULL,
- false, NULL },
- {"fast_interrupt", 0, 0, true, false, false, NULL,
- false, NULL },
- {"save_volatiles" , 0, 0, true, false, false, NULL,
- false, NULL },
- { NULL, 0, 0, false, false, false, NULL,
- false, NULL }
+ /* name min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude */
+ {"interrupt_handler", 0, 0, true, false, false, false, NULL, NULL },
+ {"break_handler", 0, 0, true, false, false, false, NULL, NULL },
+ {"fast_interrupt", 0, 0, true, false, false, false, NULL, NULL },
+ {"save_volatiles", 0, 0, true, false, false, false, NULL, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
static int microblaze_interrupt_function_p (tree);
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 4e70a9b..d6f7e28 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -595,29 +595,29 @@ static tree mips_handle_use_shadow_register_set_attr (tree *, tree, tree, int,
/* The value of TARGET_ATTRIBUTE_TABLE. */
static const struct attribute_spec mips_attribute_table[] = {
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- om_diagnostic } */
- { "long_call", 0, 0, false, true, true, NULL, false, NULL },
- { "short_call", 0, 0, false, true, true, NULL, false, NULL },
- { "far", 0, 0, false, true, true, NULL, false, NULL },
- { "near", 0, 0, false, true, true, NULL, false, NULL },
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "long_call", 0, 0, false, true, true, false, NULL, NULL },
+ { "short_call", 0, 0, false, true, true, false, NULL, NULL },
+ { "far", 0, 0, false, true, true, false, NULL, NULL },
+ { "near", 0, 0, false, true, true, false, NULL, NULL },
/* We would really like to treat "mips16" and "nomips16" as type
attributes, but GCC doesn't provide the hooks we need to support
the right conversion rules. As declaration attributes, they affect
code generation but don't carry other semantics. */
- { "mips16", 0, 0, true, false, false, NULL, false, NULL },
- { "nomips16", 0, 0, true, false, false, NULL, false, NULL },
- { "micromips", 0, 0, true, false, false, NULL, false, NULL },
- { "nomicromips", 0, 0, true, false, false, NULL, false, NULL },
- { "nocompression", 0, 0, true, false, false, NULL, false, NULL },
+ { "mips16", 0, 0, true, false, false, false, NULL, NULL },
+ { "nomips16", 0, 0, true, false, false, false, NULL, NULL },
+ { "micromips", 0, 0, true, false, false, false, NULL, NULL },
+ { "nomicromips", 0, 0, true, false, false, false, NULL, NULL },
+ { "nocompression", 0, 0, true, false, false, false, NULL, NULL },
/* Allow functions to be specified as interrupt handlers */
- { "interrupt", 0, 1, false, true, true, mips_handle_interrupt_attr,
- false, NULL },
- { "use_shadow_register_set", 0, 1, false, true, true,
- mips_handle_use_shadow_register_set_attr, false, NULL },
- { "keep_interrupts_masked", 0, 0, false, true, true, NULL, false, NULL },
- { "use_debug_exception_return", 0, 0, false, true, true, NULL, false, NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ { "interrupt", 0, 1, false, true, true, false, mips_handle_interrupt_attr,
+ NULL },
+ { "use_shadow_register_set", 0, 1, false, true, true, false,
+ mips_handle_use_shadow_register_set_attr, NULL },
+ { "keep_interrupts_masked", 0, 0, false, true, true, false, NULL, NULL },
+ { "use_debug_exception_return", 0, 0, false, true, true, false, NULL, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
/* A table describing all the processors GCC knows about; see
diff --git a/gcc/config/msp430/msp430.c b/gcc/config/msp430/msp430.c
index 038a01acb..e8f4c9f 100644
--- a/gcc/config/msp430/msp430.c
+++ b/gcc/config/msp430/msp430.c
@@ -2049,28 +2049,28 @@ msp430_data_attr (tree * node,
/* Table of MSP430-specific attributes. */
const struct attribute_spec msp430_attribute_table[] =
{
- /* Name min_num_args type_req, affects_type_identity
- max_num_args, fn_type_req exclusions
- decl_req handler. */
- { ATTR_INTR, 0, 1, true, false, false, msp430_attr, false, NULL },
- { ATTR_NAKED, 0, 0, true, false, false, msp430_attr, false, NULL },
- { ATTR_REENT, 0, 0, true, false, false, msp430_attr, false, NULL },
- { ATTR_CRIT, 0, 0, true, false, false, msp430_attr, false, NULL },
- { ATTR_WAKEUP, 0, 0, true, false, false, msp430_attr, false, NULL },
-
- { ATTR_LOWER, 0, 0, true, false, false, msp430_section_attr, false,
+ /* Name min_num_args type_req, handler
+ max_num_args, fn_type_req exclude
+ decl_req affects_type_identity. */
+ { ATTR_INTR, 0, 1, true, false, false, false, msp430_attr, NULL },
+ { ATTR_NAKED, 0, 0, true, false, false, false, msp430_attr, NULL },
+ { ATTR_REENT, 0, 0, true, false, false, false, msp430_attr, NULL },
+ { ATTR_CRIT, 0, 0, true, false, false, false, msp430_attr, NULL },
+ { ATTR_WAKEUP, 0, 0, true, false, false, false, msp430_attr, NULL },
+
+ { ATTR_LOWER, 0, 0, true, false, false, false, msp430_section_attr,
NULL },
- { ATTR_UPPER, 0, 0, true, false, false, msp430_section_attr, false,
+ { ATTR_UPPER, 0, 0, true, false, false, false, msp430_section_attr,
NULL },
- { ATTR_EITHER, 0, 0, true, false, false, msp430_section_attr, false,
+ { ATTR_EITHER, 0, 0, true, false, false, false, msp430_section_attr,
NULL },
- { ATTR_NOINIT, 0, 0, true, false, false, msp430_data_attr, false,
+ { ATTR_NOINIT, 0, 0, true, false, false, false, msp430_data_attr,
NULL },
- { ATTR_PERSIST, 0, 0, true, false, false, msp430_data_attr, false,
+ { ATTR_PERSIST, 0, 0, true, false, false, false, msp430_data_attr,
NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
#undef TARGET_ASM_FUNCTION_PROLOGUE
diff --git a/gcc/config/nds32/nds32.c b/gcc/config/nds32/nds32.c
index ba03c7a..e4ba5ff 100644
--- a/gcc/config/nds32/nds32.c
+++ b/gcc/config/nds32/nds32.c
@@ -83,34 +83,34 @@ static const char * const nds32_intrinsic_register_names[] =
static const struct attribute_spec nds32_attribute_table[] =
{
/* Syntax: { name, min_len, max_len, decl_required, type_required,
- function_type_required, handler, affects_type_identity,
- exclusions } */
+ function_type_required, affects_type_identity, handler,
+ exclude } */
/* The interrupt vid: [0-63]+ (actual vector number starts from 9 to 72). */
- { "interrupt", 1, 64, false, false, false, NULL, false, NULL },
+ { "interrupt", 1, 64, false, false, false, false, NULL, NULL },
/* The exception vid: [1-8]+ (actual vector number starts from 1 to 8). */
- { "exception", 1, 8, false, false, false, NULL, false, NULL },
+ { "exception", 1, 8, false, false, false, false, NULL, NULL },
/* Argument is user's interrupt numbers. The vector number is always 0. */
- { "reset", 1, 1, false, false, false, NULL, false, NULL },
+ { "reset", 1, 1, false, false, false, false, NULL, NULL },
/* The attributes describing isr nested type. */
- { "nested", 0, 0, false, false, false, NULL, false, NULL },
- { "not_nested", 0, 0, false, false, false, NULL, false, NULL },
- { "nested_ready", 0, 0, false, false, false, NULL, false, NULL },
+ { "nested", 0, 0, false, false, false, false, NULL, NULL },
+ { "not_nested", 0, 0, false, false, false, false, NULL, NULL },
+ { "nested_ready", 0, 0, false, false, false, false, NULL, NULL },
/* The attributes describing isr register save scheme. */
- { "save_all", 0, 0, false, false, false, NULL, false, NULL },
- { "partial_save", 0, 0, false, false, false, NULL, false, NULL },
+ { "save_all", 0, 0, false, false, false, false, NULL, NULL },
+ { "partial_save", 0, 0, false, false, false, false, NULL, NULL },
/* The attributes used by reset attribute. */
- { "nmi", 1, 1, false, false, false, NULL, false, NULL },
- { "warm", 1, 1, false, false, false, NULL, false, NULL },
+ { "nmi", 1, 1, false, false, false, false, NULL, NULL },
+ { "warm", 1, 1, false, false, false, false, NULL, NULL },
/* The attribute telling no prologue/epilogue. */
- { "naked", 0, 0, false, false, false, NULL, false, NULL },
+ { "naked", 0, 0, false, false, false, false, NULL, NULL },
/* The last attribute spec is set to be NULL. */
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c
index 16ff370..f57b4f9 100644
--- a/gcc/config/nvptx/nvptx.c
+++ b/gcc/config/nvptx/nvptx.c
@@ -4457,13 +4457,13 @@ nvptx_handle_shared_attribute (tree *node, tree name, tree ARG_UNUSED (args),
/* Table of valid machine attributes. */
static const struct attribute_spec nvptx_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- { "kernel", 0, 0, true, false, false, nvptx_handle_kernel_attribute, false,
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "kernel", 0, 0, true, false, false, false, nvptx_handle_kernel_attribute,
NULL },
- { "shared", 0, 0, true, false, false, nvptx_handle_shared_attribute, false,
+ { "shared", 0, 0, true, false, false, false, nvptx_handle_shared_attribute,
NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
/* Limit vector alignments to BIGGEST_ALIGNMENT. */
diff --git a/gcc/config/powerpcspe/powerpcspe.c b/gcc/config/powerpcspe/powerpcspe.c
index 4416580..7d11242 100644
--- a/gcc/config/powerpcspe/powerpcspe.c
+++ b/gcc/config/powerpcspe/powerpcspe.c
@@ -1533,22 +1533,22 @@ static const char alt_reg_names[][8] =
static const struct attribute_spec rs6000_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- { "altivec", 1, 1, false, true, false, rs6000_handle_altivec_attribute,
- false, NULL },
- { "longcall", 0, 0, false, true, true, rs6000_handle_longcall_attribute,
- false, NULL },
- { "shortcall", 0, 0, false, true, true, rs6000_handle_longcall_attribute,
- false, NULL },
- { "ms_struct", 0, 0, false, false, false, rs6000_handle_struct_attribute,
- false, NULL },
- { "gcc_struct", 0, 0, false, false, false, rs6000_handle_struct_attribute,
- false, NULL },
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "altivec", 1, 1, false, true, false, false,
+ rs6000_handle_altivec_attribute, NULL },
+ { "longcall", 0, 0, false, true, true, false,
+ rs6000_handle_longcall_attribute, NULL },
+ { "shortcall", 0, 0, false, true, true, false,
+ rs6000_handle_longcall_attribute, NULL },
+ { "ms_struct", 0, 0, false, false, false, false,
+ rs6000_handle_struct_attribute, NULL },
+ { "gcc_struct", 0, 0, false, false, false, false,
+ rs6000_handle_struct_attribute, NULL },
#ifdef SUBTARGET_ATTRIBUTE_TABLE
SUBTARGET_ATTRIBUTE_TABLE,
#endif
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
#ifndef TARGET_PROFILE_KERNEL
diff --git a/gcc/config/rl78/rl78.c b/gcc/config/rl78/rl78.c
index b9f6dcc..e2532b1 100644
--- a/gcc/config/rl78/rl78.c
+++ b/gcc/config/rl78/rl78.c
@@ -857,17 +857,17 @@ rl78_handle_saddr_attribute (tree * node,
/* Table of RL78-specific attributes. */
const struct attribute_spec rl78_attribute_table[] =
{
- /* Name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions. */
- { "interrupt", 0, 0, true, false, false, rl78_handle_func_attribute,
- false, NULL },
- { "brk_interrupt", 0, 0, true, false, false, rl78_handle_func_attribute,
- false, NULL },
- { "naked", 0, 0, true, false, false, rl78_handle_naked_attribute,
- false, NULL },
- { "saddr", 0, 0, true, false, false, rl78_handle_saddr_attribute,
- false, NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ /* Name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude. */
+ { "interrupt", 0, 0, true, false, false, false,
+ rl78_handle_func_attribute, NULL },
+ { "brk_interrupt", 0, 0, true, false, false, false,
+ rl78_handle_func_attribute, NULL },
+ { "naked", 0, 0, true, false, false, false,
+ rl78_handle_naked_attribute, NULL },
+ { "saddr", 0, 0, true, false, false, false,
+ rl78_handle_saddr_attribute, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 995ae04..215a1f4 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -1518,22 +1518,22 @@ static const char alt_reg_names[][8] =
static const struct attribute_spec rs6000_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- { "altivec", 1, 1, false, true, false, rs6000_handle_altivec_attribute,
- false, NULL },
- { "longcall", 0, 0, false, true, true, rs6000_handle_longcall_attribute,
- false, NULL },
- { "shortcall", 0, 0, false, true, true, rs6000_handle_longcall_attribute,
- false, NULL },
- { "ms_struct", 0, 0, false, false, false, rs6000_handle_struct_attribute,
- false, NULL },
- { "gcc_struct", 0, 0, false, false, false, rs6000_handle_struct_attribute,
- false, NULL },
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "altivec", 1, 1, false, true, false, false,
+ rs6000_handle_altivec_attribute, NULL },
+ { "longcall", 0, 0, false, true, true, false,
+ rs6000_handle_longcall_attribute, NULL },
+ { "shortcall", 0, 0, false, true, true, false,
+ rs6000_handle_longcall_attribute, NULL },
+ { "ms_struct", 0, 0, false, false, false, false,
+ rs6000_handle_struct_attribute, NULL },
+ { "gcc_struct", 0, 0, false, false, false, false,
+ rs6000_handle_struct_attribute, NULL },
#ifdef SUBTARGET_ATTRIBUTE_TABLE
SUBTARGET_ATTRIBUTE_TABLE,
#endif
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
#ifndef TARGET_PROFILE_KERNEL
diff --git a/gcc/config/rx/rx.c b/gcc/config/rx/rx.c
index 84032b7..071cca5 100644
--- a/gcc/config/rx/rx.c
+++ b/gcc/config/rx/rx.c
@@ -2731,17 +2731,17 @@ rx_handle_vector_attribute (tree * node,
/* Table of RX specific attributes. */
const struct attribute_spec rx_attribute_table[] =
{
- /* Name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions. */
- { "fast_interrupt", 0, 0, true, false, false, rx_handle_func_attribute,
- false, NULL },
- { "interrupt", 0, -1, true, false, false, rx_handle_func_attribute,
- false, NULL },
- { "naked", 0, 0, true, false, false, rx_handle_func_attribute,
- false, NULL },
- { "vector", 1, -1, true, false, false, rx_handle_vector_attribute,
- false, NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ /* Name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude. */
+ { "fast_interrupt", 0, 0, true, false, false, false,
+ rx_handle_func_attribute, NULL },
+ { "interrupt", 0, -1, true, false, false, false,
+ rx_handle_func_attribute, NULL },
+ { "naked", 0, 0, true, false, false, false,
+ rx_handle_func_attribute, NULL },
+ { "vector", 1, -1, true, false, false, false,
+ rx_handle_vector_attribute, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
/* Implement TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE. */
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index c87f44d..b87b49e 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -1178,12 +1178,12 @@ s390_handle_vectorbool_attribute (tree *node, tree name ATTRIBUTE_UNUSED,
}
static const struct attribute_spec s390_attribute_table[] = {
- { "hotpatch", 2, 2, true, false, false,
- s390_handle_hotpatch_attribute, false, NULL },
- { "s390_vector_bool", 0, 0, false, true, false,
- s390_handle_vectorbool_attribute, true, NULL },
+ { "hotpatch", 2, 2, true, false, false, false,
+ s390_handle_hotpatch_attribute, NULL },
+ { "s390_vector_bool", 0, 0, false, true, false, true,
+ s390_handle_vectorbool_attribute, NULL },
/* End element. */
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
/* Return the alignment for LABEL. We default to the -falign-labels
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 85cc77b..a627e8f 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -329,25 +329,25 @@ static bool sh_can_change_mode_class (machine_mode, machine_mode, reg_class_t);
static const struct attribute_spec sh_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- { "interrupt_handler", 0, 0, true, false, false,
- sh_handle_interrupt_handler_attribute, false, NULL },
- { "sp_switch", 1, 1, true, false, false,
- sh_handle_sp_switch_attribute, false, NULL },
- { "trap_exit", 1, 1, true, false, false,
- sh_handle_trap_exit_attribute, false, NULL },
- { "renesas", 0, 0, false, true, false,
- sh_handle_renesas_attribute, false, NULL },
- { "trapa_handler", 0, 0, true, false, false,
- sh_handle_interrupt_handler_attribute, false, NULL },
- { "nosave_low_regs", 0, 0, true, false, false,
- sh_handle_interrupt_handler_attribute, false, NULL },
- { "resbank", 0, 0, true, false, false,
- sh_handle_resbank_handler_attribute, false, NULL },
- { "function_vector", 1, 1, true, false, false,
- sh2a_handle_function_vector_handler_attribute, false, NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "interrupt_handler", 0, 0, true, false, false, false,
+ sh_handle_interrupt_handler_attribute, NULL },
+ { "sp_switch", 1, 1, true, false, false, false,
+ sh_handle_sp_switch_attribute, NULL },
+ { "trap_exit", 1, 1, true, false, false, false,
+ sh_handle_trap_exit_attribute, NULL },
+ { "renesas", 0, 0, false, true, false, false,
+ sh_handle_renesas_attribute, NULL },
+ { "trapa_handler", 0, 0, true, false, false, false,
+ sh_handle_interrupt_handler_attribute, NULL },
+ { "nosave_low_regs", 0, 0, true, false, false, false,
+ sh_handle_interrupt_handler_attribute, NULL },
+ { "resbank", 0, 0, true, false, false, false,
+ sh_handle_resbank_handler_attribute, NULL },
+ { "function_vector", 1, 1, true, false, false, false,
+ sh2a_handle_function_vector_handler_attribute, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
/* Initialize the GCC target structure. */
diff --git a/gcc/config/sol2.h b/gcc/config/sol2.h
index 69c713b..268ab13 100644
--- a/gcc/config/sol2.h
+++ b/gcc/config/sol2.h
@@ -406,8 +406,8 @@ along with GCC; see the file COPYING3. If not see
/* #pragma init and #pragma fini are implemented on top of init and
fini attributes. */
#define SOLARIS_ATTRIBUTE_TABLE \
- { "init", 0, 0, true, false, false, NULL, false, NULL }, \
- { "fini", 0, 0, true, false, false, NULL, false, NULL }
+ { "init", 0, 0, true, false, false, false, NULL, NULL }, \
+ { "fini", 0, 0, true, false, false, false, NULL, NULL }
/* Solaris-specific #pragmas are implemented on top of attributes. Hook in
the bits from config/sol2.c. */
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 890bde9..fc50f9b 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -691,10 +691,10 @@ static HOST_WIDE_INT sparc_constant_alignment (const_tree, HOST_WIDE_INT);
/* Table of valid machine attributes. */
static const struct attribute_spec sparc_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- do_diagnostic, exclusions } */
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ do_diagnostic, handler, exclude } */
SUBTARGET_ATTRIBUTE_TABLE,
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
#endif
diff --git a/gcc/config/spu/spu.c b/gcc/config/spu/spu.c
index 84dddbc..c1c79a2 100644
--- a/gcc/config/spu/spu.c
+++ b/gcc/config/spu/spu.c
@@ -7215,13 +7215,13 @@ spu_constant_alignment (const_tree, HOST_WIDE_INT align)
/* Table of machine attributes. */
static const struct attribute_spec spu_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- { "naked", 0, 0, true, false, false, spu_handle_fndecl_attribute,
- false, NULL },
- { "spu_vector", 0, 0, false, true, false, spu_handle_vector_attribute,
- false, NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "naked", 0, 0, true, false, false, false,
+ spu_handle_fndecl_attribute, NULL },
+ { "spu_vector", 0, 0, false, true, false, false,
+ spu_handle_vector_attribute, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
/* TARGET overrides. */
diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c
index 3a21260..bf72693 100644
--- a/gcc/config/stormy16/stormy16.c
+++ b/gcc/config/stormy16/stormy16.c
@@ -2189,15 +2189,15 @@ static tree xstormy16_handle_below100_attribute
static const struct attribute_spec xstormy16_attribute_table[] =
{
- /* name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions. */
- { "interrupt", 0, 0, false, true, true,
- xstormy16_handle_interrupt_attribute , false, NULL },
- { "BELOW100", 0, 0, false, false, false,
- xstormy16_handle_below100_attribute, false, NULL },
- { "below100", 0, 0, false, false, false,
- xstormy16_handle_below100_attribute, false, NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ /* name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude. */
+ { "interrupt", 0, 0, false, true, true, false,
+ xstormy16_handle_interrupt_attribute, NULL },
+ { "BELOW100", 0, 0, false, false, false, false,
+ xstormy16_handle_below100_attribute, NULL },
+ { "below100", 0, 0, false, false, false, false,
+ xstormy16_handle_below100_attribute, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
/* Handle an "interrupt" attribute;
diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c
index 3d0bbf5..a26f5d6 100644
--- a/gcc/config/v850/v850.c
+++ b/gcc/config/v850/v850.c
@@ -2072,8 +2072,7 @@ v850_set_data_area (tree decl, v850_data_area data_area)
/* Handle an "interrupt" attribute; arguments as in
struct attribute_spec.handler. */
static tree
-v850_handle_interrupt_attribute (tree * node,
- tree name,
+v850_handle_interrupt_attribute (tree *node, tree name,
tree args ATTRIBUTE_UNUSED,
int flags ATTRIBUTE_UNUSED,
bool * no_add_attrs)
@@ -2091,8 +2090,7 @@ v850_handle_interrupt_attribute (tree * node,
/* Handle a "sda", "tda" or "zda" attribute; arguments as in
struct attribute_spec.handler. */
static tree
-v850_handle_data_area_attribute (tree* node,
- tree name,
+v850_handle_data_area_attribute (tree *node, tree name,
tree args ATTRIBUTE_UNUSED,
int flags ATTRIBUTE_UNUSED,
bool * no_add_attrs)
@@ -3187,19 +3185,19 @@ v850_adjust_insn_length (rtx_insn *insn, int length)
static const struct attribute_spec v850_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- { "interrupt_handler", 0, 0, true, false, false,
- v850_handle_interrupt_attribute, false, NULL },
- { "interrupt", 0, 0, true, false, false,
- v850_handle_interrupt_attribute, false, NULL },
- { "sda", 0, 0, true, false, false,
- v850_handle_data_area_attribute, false, NULL },
- { "tda", 0, 0, true, false, false,
- v850_handle_data_area_attribute, false, NULL },
- { "zda", 0, 0, true, false, false,
- v850_handle_data_area_attribute, false, NULL },
- { NULL, 0, 0, false, false, false, NULL, false, NULL }
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "interrupt_handler", 0, 0, true, false, false, false,
+ v850_handle_interrupt_attribute, NULL },
+ { "interrupt", 0, 0, true, false, false, false,
+ v850_handle_interrupt_attribute, NULL },
+ { "sda", 0, 0, true, false, false, false,
+ v850_handle_data_area_attribute, NULL },
+ { "tda", 0, 0, true, false, false, false,
+ v850_handle_data_area_attribute, NULL },
+ { "zda", 0, 0, true, false, false, false,
+ v850_handle_data_area_attribute, NULL },
+ { NULL, 0, 0, false, false, false, false, NULL, NULL }
};
static void
diff --git a/gcc/config/visium/visium.c b/gcc/config/visium/visium.c
index a8b9001..4165214 100644
--- a/gcc/config/visium/visium.c
+++ b/gcc/config/visium/visium.c
@@ -145,11 +145,11 @@ static inline bool current_function_has_lr_slot (void);
interrupt -- specifies this function is an interrupt handler. */
static const struct attribute_spec visium_attribute_table[] =
{
- /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
- affects_type_identity, exclusions } */
- {"interrupt", 0, 0, true, false, false, visium_handle_interrupt_attr, false,
- NULL},
- {NULL, 0, 0, false, false, false, NULL, false, NULL},
+ /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
+ affects_type_identity, handler, exclude } */
+ { "interrupt", 0, 0, true, false, false, false, visium_handle_interrupt_attr,
+ NULL},
+ { NULL, 0, 0, false, false, false, false, NULL, NULL },
};
static struct machine_function *visium_init_machine_status (void);