https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114265
Bug ID: 114265
Summary: Unhelpful message when var name is also a struct name
Product: gcc
Version: 14.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: denis.campredon at gmail dot com
Target Milestone: ---
While working with legacy code, I encountered the following problem.
The code:
------------
struct Struct;
int fn(Struct *);
Struct *Struct;
int fn(Struct *)
{
return 0;
}
-------------
produces the following error message:
-------------
aaaaaa.c:7:8: error: 'int fn' redeclared as different kind of entity
7 | int fn(Struct *)
| ^~~~~~
aaaaaa.c:3:5: note: previous declaration 'int fn(Struct*)'
3 | int fn(Struct *);
| ^~
aaaaaa.c:7:16: error: expected primary-expression before ')' token
7 | int fn(Struct *)
--------------
This message does not really explain what the real problem is.
A message saying that `Struct` has been redefined as a variable would help
more.