https://gcc.gnu.org/bugzilla/show_bug.cgi?id=17308
--- Comment #24 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #23) > I also suspect many of these new warnings we are doing in recent years > really should not be part of -Wall because of how many false positives we > have. GCC has been getting a recent attention because of the false positives > warnings too. Current documentation says '-Wall' This enables all the warnings about constructions that some users consider questionable, and that are easy to avoid (or modify to prevent the warning), even in conjunction with macros. and '-Wextra' This enables some extra warning flags that are not enabled by '-Wall'. We don't document at all what options should be enabled by -Wall, what options should be enabled by -W, and which should be done by neither. The current documentation for -Wall is very noncommittal. It all is a tradeoff of course. IMO our documentation should make that clear as well. In my view, -Wall should enable all warnings that have few false positives (less than 5% or 10%, say), and when they do this is easy to avoid, or perhaps the warning points out very important (security) problems. -W is the same but with higher tolerance for false positives. And the warnings that are not so useful, or are hard to avoid, and have a high false positive rate, should not be enabled by either. (Oh, and please note that -Werror is not part of these considerations at all. When -Werror makes things "break" this is just a learning opportunity for whoever asked for it. Maybe we should document -Werror as an alias of -Wself-flagellation).