[Bug c/121563] New: inconsistency with repeated forward declarations of parameters with , or ;
foss+gcc@alejandro-colomar.es
gcc-bugzilla@gcc.gnu.org
Fri Aug 15 09:08:07 GMT 2025
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121563
Bug ID: 121563
Summary: inconsistency with repeated forward declarations of
parameters with , or ;
Product: gcc
Version: 16.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: foss+gcc@alejandro-colomar.es
Target Milestone: ---
alx@devuan:~/tmp$ cat fwd2.c | nl -ba
1 void f1(int x; int x; int x);
2 void f2(int y, int y; int y);
3
4 void f3(int a[]; int a[]; int a[]);
5 void f4(int b[], int b[]; int b[]);
alx@devuan:~/tmp$ gcc -S -Wall -Wextra fwd2.c
fwd2.c:2:20: error: redefinition of parameter ‘y’
2 | void f2(int y, int y; int y);
| ~~~~^
fwd2.c:2:13: note: previous definition of ‘y’ with type ‘int’
2 | void f2(int y, int y; int y);
| ~~~~^
fwd2.c:2:13: error: parameter ‘y’ has just a forward declaration
fwd2.c:5:22: error: redefinition of parameter ‘b’
5 | void f4(int b[], int b[]; int b[]);
| ~~~~^~~
fwd2.c:5:13: note: previous definition of ‘b’ with type ‘int *’
5 | void f4(int b[], int b[]; int b[]);
| ~~~~^~~
fwd2.c:5:13: error: parameter ‘b’ has just a forward declaration
We get errors for the second forward declaration of parameters if we use ','
but not if we use ';'. Should both behave consistently? Which behavior do we
prefer?
More information about the Gcc-bugs
mailing list