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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2023-06-05
     Ever confirmed|0                           |1

--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
  _33 = (intD.6) _13;
  # RANGE [irange] unsigned int [2, 32767][4294934528, +INF]
  _29 = (unsigned int) _13;
  # RANGE [irange] unsigned int [0, 0][3, 32768][4294934529, +INF]
  _37 = _29 + 1;
  _21 = _37 <= 2;
  # RANGE [irange] int [-32768, 0][2, 32767]
  _34 = _21 ? _33 : 0;
  if (_34 != 5)

First:
_t = _33 != 5
_t1 = _21 & _t
if (_t1 != 0)

Second:
_21 = _37 == 0 (because that is the only value that is less than or equal to 2
it could be)

So:
_21 = _29 == UINT_MAX
or:
_21 = _33 == -1

But since _33 != 5

so _t1 is 0.

Confirmed.

Reply via email to