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

Aldy Hernandez <aldyh at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
           Assignee|unassigned at gcc dot gnu.org      |aldyh at gcc dot gnu.org
   Last reconfirmed|                            |2022-04-29
     Ever confirmed|0                           |1

--- Comment #5 from Aldy Hernandez <aldyh at gcc dot gnu.org> ---
set_range_info does not handle VR_VARYING because SSA_NAME_RANGE_TYPE can only
store VR_RANGE or VR_ANTI_RANGE.  However, we allow storing a range of the
entire domain because nonzero bits can be set on such a range.

This was working because the previous call to set_range_info was passing
VR_RANGE and the extremes of the type.  This won't work if we go through a
value_range, because the normalization code will see [MIN, MAX] and normalize
it to VR_VARYING.  Ughh.

The correct thing to do here is to force VR_RANGE in this scenario.

Reply via email to