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

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

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

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
The ICE is when operator_lt::op2_range does:
976         case BRS_FALSE:
977           build_le (r, type, op1.upper_bound ());
978           break;

lhs is
[irange] bool [0, 0] NONZERO 0x0
and rhs is
[irange] UNDEFINED
which is why op1.upper_bound () ICEs - it has no pairs.
I wonder if operator_lt::op?_range and other operators shouldn't start with
relop_early_resolve or at least empty_range_varying or something similar to
deal with
op?.undefined_p ().

Reply via email to