https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104069

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jakub at gcc dot gnu.org

--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
It is not, because it emits a false positive on a fairly common code.
Anyway, if bb3 jumps to bb4, then bb3 should have in the ranger assertion that
in bb3 ret_17 is 0 (it is on the true branch of the ret_17 == 0 && something
test),
so for the PHI, while it is or, it is either 2->4 is the executable edge and
then ret_7 == 0 implies ret_17 == 0, or 3->4 is the executable edge and then
ret_17 == 0 too because that was what was the assertion in bb 3.  But arguably
it isn't a very common case for PHIs.  So, either the ranger can have special
case for something like that, or the warning code can.

Reply via email to