https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53313
--- Comment #9 from Manuel López-Ibáñez <manu at gcc dot gnu.org> --- (In reply to David Stone from comment #8) > I have changed my opinion on this and agree that warning levels are probably > not the way to go. The two things from this that I do still want are > > -Weverything-and-I-really-mean-it-this-time Do you really want -Wdouble-promotion: float area(float radius) { return 3.14159 * radius * radius; // warns! } And -Wtraditional? It warns for example for: * The unary plus operator. * A switch statement has an operand of type long. And what should happen for -Wc90-c99-compat -Wc99-c11-compat and -Wc++-compat? They will warn for bool, long long, etc, even if you use '-std=c11'. As an exercise, you can take the list given by: wget https://gcc.gnu.org/svn/gcc/trunk/gcc/doc/invoke.texi grep '@item -W[^ ]\+' -o invoke.texi | grep -v '@item -Wno-\|-Werror\|-Wfatal-' and try to build any large piece of software with it and see if you still want -Weverything-and-I-really-mean-it-this-time.