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].

Reply via email to