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

            Bug ID: 116474
           Summary: GCC somehow confuses "unsigned __int128_t" with a
                    nested function
           Product: gcc
           Version: 15.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gabravier at gmail dot com
  Target Milestone: ---

int main(){
        unsigned __int128_t x = 0;
}

Compiled with -pedantic, results in the following warning:

<source>: In function 'main':
<source>:2:9: warning: ISO C forbids nested functions [-Wpedantic]
    2 |         unsigned __int128_t x = 0;
      |         ^~~~~~~~
<source>:2:29: error: expected '=', ',', ';', 'asm' or '__attribute__' before
'x'
    2 |         unsigned __int128_t x = 0;
      |                             ^
<source>:2:29: error: 'x' undeclared (first use in this function)
<source>:2:29: note: each undeclared identifier is reported only once for each
function it appears in

It seems quite odd that a warning for a nested function is emitted here.

Reply via email to