On 10/23/20 1:38 PM, Segher Boessenkool wrote:
Yes. And you usually should make trivial changes to your program if the
compiler warns, even if you consider that unnecessary -- just so that
you will not miss other warnings!
No, but you can write your code so that it more obviously does not use
unitialised variables. This is an Even Better Thing(tm). The compiler
will understand it, but much more importantly, human readers will
understand it as well!
It's often (maybe always) possible to reorder/refactor the code as you
suggest. Sometimes (maybe often) that results in convoluted logic and
control flow, needlessly repeated code sections, gratuitous (possibly
inline) functions, and the like. The cure being worse than the #pragma
disease.
-Wmaybe-uninitialized has a LOT of false positives if you use anything
but the strictest, simplest control flow. It's the nature of the beast.
That's the point. There will always be false positives. Sometimes the
programmer *does* know more than the compiler. IMO GCC could benefit
from a better way to selectively turn them off.
5. I now see something similar was requested in 2012 in
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55288 but seems to have
been dismissed with a variation of #4.
It wasn't dismissed, that PR is still open.
Sorry, I was using "dismissed" colloquially. The response was
dismissive, and from what I've been able to find nothing has been done
in the succeeding 8 years.
But, yes, that's the nature of the open source (in general) and GCC (in
particular) beast.
--
MARK
markrubn@xxxxxxxxx