On 12/08/2017 04:30 AM, Jakub Jelinek wrote:
On Fri, Dec 08, 2017 at 11:32:54AM +0100, Rainer Orth wrote:
Jakub Jelinek <ja...@redhat.com> writes:

On Fri, Dec 08, 2017 at 10:43:58AM +0100, Rainer Orth wrote:
The line numbers are completely misleading, unfortunately.  Hadn't
SUBTARGET_ATTRIBUTE_TABLE been used at the end of the (very short)
sparc_attribute_table, I wouldn't have seen what was wrong.

The following patch fixes the problem, installed on mainline after
i386-pc-solaris2.11 and sparc-sun-solaris2.11 bootstraps completed
without regressions.

However, there are two more SUBTARGET_ATTRIBUTE_TABLE defines:

gcc/config/darwin.h:#define SUBTARGET_ATTRIBUTE_TABLE \
gcc/config/i386/cygming.h:#define SUBTARGET_ATTRIBUTE_TABLE \

I'll deal with this.

This is what I'm currently testing with an  x86_64-apple-darwin11.4.2
bootstrap.  Ok if it passes?

I've committed this instead, while only darwin.h and cygming.h were left
broken, the comments haven't been adjusted in many more cases.

Sorry about that and thanks for fixing it up.  Hopefully the Solaris
and Darwin files were the only ones I missed.  They were hidden from
my search by macros.

Martin


BTW, we should swap handler and affects_type_identity fields at some point,
3 bools, then pointer, then bool, then pointer needs quite a lot of padding.

2017-12-08  Jakub Jelinek  <ja...@redhat.com>

        * config/arc/arc.c (arc_attribute_table): Add exclusions to
        the comment.
        * config/avr/avr.c (avr_attribute_table): Likewise.
        * config/msp430/msp430.c (msp430_attribute_table): Likewise.
        * config/rl78/rl78.c (rl78_attribute_table): Likewise.
        * config/nds32/nds32.c (nds32_attribute_table): Likewise.
        * config/darwin.h (SUBTARGET_ATTRIBUTE_TABLE): Initialize new member
        of struct attribute_spec.
        * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Likewise.
ada/
        * gcc-interface/utils.c (gnat_internal_attribute_table): Add
        exclusions to the comment.
brig/
        * brig-lang.c (brig_attribute_table): Fix up comment.

--- gcc/config/arc/arc.c.jj     2017-12-07 18:05:03.000000000 +0100
+++ gcc/config/arc/arc.c        2017-12-08 11:20:24.605501619 +0100
@@ -218,7 +218,7 @@ static tree arc_handle_fndecl_attribute
 const struct attribute_spec arc_attribute_table[] =
 {
  /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
-      affects_type_identity } */
+      affects_type_identity, exclusions } */
   { "interrupt", 1, 1, true, false, false, arc_handle_interrupt_attribute,
       true, NULL },
   /* Function calls made to this symbol must be done indirectly, because
--- gcc/config/avr/avr.c.jj     2017-12-07 18:05:02.000000000 +0100
+++ gcc/config/avr/avr.c        2017-12-08 11:24:32.270391537 +0100
@@ -9875,7 +9875,7 @@ static const struct attribute_spec
 avr_attribute_table[] =
 {
   /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
-       affects_type_identity } */
+       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,
--- gcc/config/darwin.h.jj      2017-11-28 12:11:41.000000000 +0100
+++ gcc/config/darwin.h 2017-12-08 11:18:05.866243854 +0100
@@ -741,11 +741,11 @@ extern GTY(()) section * 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 } */                                              
     \
+       affects_type_identity, exclusions } */                               \
   { "apple_kext_compatibility", 0, 0, false, true, false,                 \
-    darwin_handle_kext_attribute, false },                                  \
+    darwin_handle_kext_attribute, false, NULL },                            \
   { "weak_import", 0, 0, true, false, false,                              \
-    darwin_handle_weak_import_attribute, false }
+    darwin_handle_weak_import_attribute, false, NULL }

 /* Make local constant labels linker-visible, so that if one follows a
    weak_global constant, ld64 will be able to separate the atoms.  */
--- gcc/config/i386/cygming.h.jj        2017-10-30 12:02:35.000000000 +0100
+++ gcc/config/i386/cygming.h   2017-12-08 11:25:12.372887945 +0100
@@ -448,9 +448,9 @@ do {                                                \

 #define SUBTARGET_ATTRIBUTE_TABLE \
   { "selectany", 0, 0, true, false, false, ix86_handle_selectany_attribute, \
-    false }
+    false, NULL }
   /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
-       affects_type_identity } */
+       affects_type_identity, exclusions } */

 /*  mcount() does not need a counter variable.  */
 #undef NO_PROFILE_COUNTERS
--- gcc/config/msp430/msp430.c.jj       2017-12-07 18:05:03.000000000 +0100
+++ gcc/config/msp430/msp430.c  2017-12-08 11:26:47.634691684 +0100
@@ -2050,7 +2050,7 @@ msp430_data_attr (tree * node,
 const struct attribute_spec msp430_attribute_table[] =
 {
   /* Name        min_num_args     type_req,             affects_type_identity
-                      max_num_args,     fn_type_req
+                     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 },
--- gcc/config/rl78/rl78.c.jj   2017-12-07 18:05:03.000000000 +0100
+++ gcc/config/rl78/rl78.c      2017-12-08 11:27:25.024222160 +0100
@@ -858,7 +858,7 @@ rl78_handle_saddr_attribute (tree * node
 const struct attribute_spec rl78_attribute_table[] =
 {
   /* Name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
-     affects_type_identity.  */
+     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,
--- gcc/config/nds32/nds32.c.jj 2017-12-07 18:05:02.000000000 +0100
+++ gcc/config/nds32/nds32.c    2017-12-08 11:27:54.160856273 +0100
@@ -83,7 +83,8 @@ static const char * const nds32_intrinsi
 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 } */
+              function_type_required, handler, affects_type_identity,
+              exclusions } */

   /* The interrupt vid: [0-63]+ (actual vector number starts from 9 to 72).  */
   { "interrupt",    1, 64, false, false, false, NULL, false, NULL },
--- gcc/ada/gcc-interface/utils.c.jj    2017-12-07 18:04:59.000000000 +0100
+++ gcc/ada/gcc-interface/utils.c       2017-12-08 11:29:11.796881349 +0100
@@ -108,7 +108,7 @@ static tree fake_attribute_handler (tree
 const struct attribute_spec gnat_internal_attribute_table[] =
 {
   /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
-       affects_type_identity } */
+       affects_type_identity, exclusions } */
   { "const",        0, 0,  true,  false, false, handle_const_attribute,
     false, NULL },
   { "nothrow",      0, 0,  true,  false, false, handle_nothrow_attribute,
--- gcc/brig/brig-lang.c.jj     2017-12-07 18:04:55.000000000 +0100
+++ gcc/brig/brig-lang.c        2017-12-08 12:20:40.475998143 +0100
@@ -448,7 +448,7 @@ brig_localize_identifier (const char *id
 const struct attribute_spec brig_attribute_table[] =
 {
   /* { name, min_len, max_len, decl_req, type_req, fn_type_req, handler,
-       do_diagnostic } */
+       affects_type_identity, exclusions } */
   { "leaf",                0, 0, true,  false, false,
                              handle_leaf_attribute, false, NULL },
   { "const",                  0, 0, true,  false, false,


        Jakub


Reply via email to