https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85676
Bug ID: 85676 Summary: Obsolete function declarations should have warnings by default Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: david at westcontrol dot com Target Milestone: --- There are a number of features of C that are still legal code even in C11, but have been obsolete for many generations of C because they are unnecessary and have a high risk of errors. gcc has to be able to support old code, but it is perfectly valid to give warnings on such old code. A prime example is non-prototype function declarations, such as "void foo()". This has been obsolete since C89, almost 30 years ago, yet if you have: // a.c void foo(); gcc -std=c11 -Wall -Wextra -pedantic -c a.c it compiles without warning. You need "-Wstrict-prototypes" to get a warning. Surely this warning ought to be part of -Wall, or enabled by default when a C11 or C99 standard is chosen? The same applies to K&R style function definitions.