On Fri, Feb 1, 2019 at 8:28 PM Jeff Law <l...@redhat.com> wrote: > > On 2/1/19 7:01 AM, Marek Polacek wrote: > > On Fri, Feb 01, 2019 at 07:19:25AM -0600, Segher Boessenkool wrote: > >> Hi Marc, > >> > >> On Fri, Feb 01, 2019 at 12:32:45PM +0100, Marc Glisse wrote: > >>> -Wmaybe-uninitialized generates false positives, we can tweak the compiler > >>> to reduce them, but there will always be some, that's in the nature of > >>> this warning. > >> > >> That is true for *every* warning; if not, it should be an error, not a > >> warning. > >> > >>> My opinion is that -Wmaybe-uninitialized would serve its purpose better as > >>> part of -Wextra. > >> > >> +1 > > > > +1 from me too. > I disagree strongly. If we move it to Wextra it's going to see a lot > less usage in real world codebases and potentially lead to the > re-introduction of a class of bugs that we've largely helped stomp out. > > It's also the case that maybe uninitialized vs is uninitialized is > really just a function of CFG shape. Give me any "maybe uninitialized" > case and I can turn it into a "is uninitialized" with simple block > duplication of the forms done by jump threading, path isolation, > superblock formation, etc.
Agreed. Also note that we consider everything executed when function entry is executed as not "maybe" even though functions can be called conditionally. So there's the artificial function boundary issue when distinguishing maybe from must-be stuff as well. Richard. > > > > >>> People tend to use -Wall with -Werror (either explicitly > >>> or implicitly by modifying the code until all warnings are gone). What I > >>> see currently in projects where I participate is that > >>> -Wmaybe-uninitialized is making things worse. People don't investigate > >>> deeply the cause of the warning, they just go for whatever "quick-fix" > >>> makes the compiler shut up. Quite often, this involves extra code that is > >>> less readable and performs worse, while it didn't even "fix" what caused > >>> the warning, it just randomly ended up with code where the compiler > >>> doesn't warn (possibly because the function got bigger, which changed > >>> inlining decisions...). > >> > >> Yes, using -Werror is usually a terrible idea. > Generally agreed in released versions of any code. -Werror *may* be > appropriate in development versions depending on the project's policies, > procedures and quality of codebase. > > > Jeff