https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108213

            Bug ID: 108213
           Summary: [[noreturn]] cannot be used after static keyword
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: jsm28 at gcc dot gnu.org
  Target Milestone: ---

I noticed that in timezone package:

$ cat zic.i && gcc-12 zic.i -c
static _Noreturn void
time_overflow(void)
{
  __builtin_abort ();
}

$ cat zic.i && gcc-12 zic.i -c
static [[noreturn]] void
time_overflow(void)
{
  __builtin_abort ();
}
zic.i:1:1: warning: ‘noreturn’ attribute ignored [-Wattributes]
    1 | static [[noreturn]] void
      | ^~~~~~
zic.i:1:21: error: expected identifier or ‘(’ before ‘void’
    1 | static [[noreturn]] void
      |                     ^~~~

Is it really an invalid construction?

Reply via email to