My previous cleanups to irange::set moved the early exit when
VARYING. This caused poly int varyings to be created with
incorrect min/max.
We can just set varying and exit for all poly ints.
gcc/ChangeLog:
* value-range.cc (irange::set): Early exit for poly ints.
return;
}
- if (kind != VR_VARYING
- && (POLY_INT_CST_P (min) || POLY_INT_CST_P (max)))
- kind = VR_VARYING;
+ if (POLY_INT_CST_P (min) || POLY_INT_CST_P (max))
+ {
+ set_varying (TREE_TYPE (min));
+ return;
+ }
// Nothing to canonicalize for symbolic ranges.
if (TREE_CODE (min) != INTEGER_CST