[Bug tree-optimization/71031] [6/7 Regression] ICE in extract_range_from_binary_expr_1, at tree-vrp.c:2535 w/ -Os
mpolacek at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu May 19 11:44:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71031
--- Comment #12 from Marek Polacek <mpolacek at gcc dot gnu.org> ---
I'm testing this then:
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -2525,14 +2525,19 @@ extract_range_from_binary_expr_1 (value_range *vr,
set_value_range_to_varying (vr);
return;
}
+ else if ((min_ovf == 1 && max_ovf == 0)
+ || (min_ovf == 0 && max_ovf == -1))
+ {
+ /* Min overflow or max underflow., drop to VR_VARYING. */
+ set_value_range_to_varying (vr);
+ return;
+ }
else
{
/* Min underflow or max overflow. The range kind
changes to VR_ANTI_RANGE. */
bool covers = false;
wide_int tem = tmin;
- gcc_assert ((min_ovf == -1 && max_ovf == 0)
- || (max_ovf == 1 && min_ovf == 0));
type = VR_ANTI_RANGE;
tmin = tmax + 1;
if (wi::cmp (tmin, tmax, sgn) < 0)
More information about the Gcc-bugs
mailing list