[Bug middle-end/63224] false positive for -Wmaybe-uninitialized at -Os (not -O2) with && transformed to &
manu at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Sep 12 13:45:00 GMT 2014
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63224
Manuel López-Ibáñez <manu at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2014-09-12
Component|c |middle-end
Blocks| |24639
Summary|False Positive for |false positive for
|-Wmaybe-uninitialized at |-Wmaybe-uninitialized at
|-Os, not -O2 |-Os (not -O2) with &&
| |transformed to &
Ever confirmed|0 |1
--- Comment #9 from Manuel López-Ibáñez <manu at gcc dot gnu.org> ---
(In reply to Manuel López-Ibáñez from comment #6)
> I think this is PR56574, but we need to check the dumps to be sure. The dump
> should be something like: test.c.NNNt.uninit1, you can get it with
> -fdump-tree-all-all-lineno.
According to this:
+ [Os.c : 8:8] # RANGE [0, 1]
+ _12 = s_4(D) == 2;
+ [Os.c : 8:18] # RANGE [0, 1]
+ _13 = c_1 == 0;
+ [Os.c : 8:13] # RANGE [0, 1]
+ _14 = _13 & _12;
the same bug is involved, but this one is a bit more complicated because it is
not clear that the uninit pass realizes that the c_5(D)(7) edge is guarded by
s==0, so in that case _12==0 and c_1 doesn't matter.
More information about the Gcc-bugs
mailing list