https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70275
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2020-07-06 Keywords| |diagnostic CC| |msebor at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #5 from Martin Sebor <msebor at gcc dot gnu.org> --- Let me confirm this bug report, in part because -w is documented to "Inhibit all warning messages" but it does more than that, and also behaves differently than Clang, and in my view not intuitively. For example, the following produces no output with GCC 10: $ cat q.c && gcc -S -w -Wall -Werror -Wimplicit-int q.c #pragma GCC diagnostic error "-Wimplicit-int" f () { } but reports an error with Clang: $ clang -S -w -Wall -Werror -Wimplicit-int q.c q.c:2:1: error: type specifier missing, defaults to 'int' [-Werror,-Wimplicit-int] f () { } ^ 1 error generated. The Clang behavior makes more sense to me (it suppresses warnings but not errors) but if there's some deeper logic in what GCC does it would be helpful to mention it in the manual.