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.