https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121907
--- Comment #2 from Alejandro Colomar <foss+...@alejandro-colomar.es> --- Another possibility would be to remove auto-as-static without replacement. Declaring nested functions is dangerous. What's the point of being able to declare them if it's not yet valid to call them? alx@debian:~/tmp$ cat nested.c | nl -ba 1 int 2 main(int argc, char *[]) 3 { 4 int n; 5 auto int f(void); 6 7 n = f(); 8 9 int v[argc]; 10 11 auto int f(void) 12 { 13 return sizeof(v); 14 } 15 16 return n; 17 } alx@debian:~/tmp$ gcc -Wall -Wextra nested.c alx@debian:~/tmp$ ./a.out 1 1 1 1; echo $? 0