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.

Reply via email to