https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123300
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Priority|P3 |P2
--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Note, eventhough there is x_8 = 1 << i_7; with [1, +INF] range, that statement
is inside of the loop body, while i_7 def stmt is inside of the loop header and
# i_2 = PHI <i_1(9), n_4(D)(2)>
i_7 = i_2 + -1;
if (i_2 > 0)
goto loop_body;
else
goto loop_exit;
so it loops only if i_2 > 0, i.e. if i_7 >= 0. But still the exported range
for i_7 should be # RANGE [irange] int [-INF, 2147483646].