re PR tree-optimization/31034 (ICE in set_value_range, at tree-vrp.c:267)
PR tree-optimization/31034 * tree-vrp.c (extract_range_from_assert): Don't try to handle a half-range if the other side is an overflow infinity. From-SVN: r122562
This commit is contained in:
parent
666ff4f65d
commit
7343ff45ca
@ -1,3 +1,9 @@
|
||||
2007-03-05 Ian Lance Taylor <iant@google.com>
|
||||
|
||||
PR tree-optimization/31034
|
||||
* tree-vrp.c (extract_range_from_assert): Don't try to handle a
|
||||
half-range if the other side is an overflow infinity.
|
||||
|
||||
2007-03-05 Bernd Schmidt <bernd.schmidt@analog.com>
|
||||
|
||||
* config.gcc (bfin*-uclinux*): Use t-bfin-uclinux.
|
||||
|
@ -1137,13 +1137,14 @@ extract_range_from_assert (value_range_t *vr_p, tree expr)
|
||||
/* If the maximum value forces us to be out of bounds, simply punt.
|
||||
It would be pointless to try and do anything more since this
|
||||
all should be optimized away above us. */
|
||||
if (cond_code == LT_EXPR && compare_values (max, min) == 0)
|
||||
if ((cond_code == LT_EXPR
|
||||
&& compare_values (max, min) == 0)
|
||||
|| is_overflow_infinity (max))
|
||||
set_value_range_to_varying (vr_p);
|
||||
else
|
||||
{
|
||||
/* For LT_EXPR, we create the range [MIN, MAX - 1]. */
|
||||
if (cond_code == LT_EXPR
|
||||
&& !is_positive_overflow_infinity (max))
|
||||
if (cond_code == LT_EXPR)
|
||||
{
|
||||
tree one = build_int_cst (type, 1);
|
||||
max = fold_build2 (MINUS_EXPR, type, max, one);
|
||||
@ -1169,13 +1170,14 @@ extract_range_from_assert (value_range_t *vr_p, tree expr)
|
||||
/* If the minimum value forces us to be out of bounds, simply punt.
|
||||
It would be pointless to try and do anything more since this
|
||||
all should be optimized away above us. */
|
||||
if (cond_code == GT_EXPR && compare_values (min, max) == 0)
|
||||
if ((cond_code == GT_EXPR
|
||||
&& compare_values (min, max) == 0)
|
||||
|| is_overflow_infinity (min))
|
||||
set_value_range_to_varying (vr_p);
|
||||
else
|
||||
{
|
||||
/* For GT_EXPR, we create the range [MIN + 1, MAX]. */
|
||||
if (cond_code == GT_EXPR
|
||||
&& !is_negative_overflow_infinity (min))
|
||||
if (cond_code == GT_EXPR)
|
||||
{
|
||||
tree one = build_int_cst (type, 1);
|
||||
min = fold_build2 (PLUS_EXPR, type, min, one);
|
||||
|
Loading…
Reference in New Issue
Block a user