summaryrefslogtreecommitdiff
path: root/gcc/vr-values.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/vr-values.c')
-rw-r--r--gcc/vr-values.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/gcc/vr-values.c b/gcc/vr-values.c
index 075ea8431a6..cbc759a18e6 100644
--- a/gcc/vr-values.c
+++ b/gcc/vr-values.c
@@ -2891,8 +2891,9 @@ vr_values::extract_range_from_phi_node (gphi *phi, value_range *vr_result)
if (cmp_min < 0)
new_min = lhs_vr->min ();
else if (cmp_min > 0
- && tree_int_cst_lt (vrp_val_min (vr_result->type ()),
- vr_result->min ()))
+ && (TREE_CODE (vr_result->min ()) != INTEGER_CST
+ || tree_int_cst_lt (vrp_val_min (vr_result->type ()),
+ vr_result->min ())))
new_min = int_const_binop (PLUS_EXPR,
vrp_val_min (vr_result->type ()),
build_int_cst (vr_result->type (), 1));
@@ -2901,8 +2902,9 @@ vr_values::extract_range_from_phi_node (gphi *phi, value_range *vr_result)
if (cmp_max > 0)
new_max = lhs_vr->max ();
else if (cmp_max < 0
- && tree_int_cst_lt (vr_result->max (),
- vrp_val_max (vr_result->type ())))
+ && (TREE_CODE (vr_result->max ()) != INTEGER_CST
+ || tree_int_cst_lt (vr_result->max (),
+ vrp_val_max (vr_result->type ()))))
new_max = int_const_binop (MINUS_EXPR,
vrp_val_max (vr_result->type ()),
build_int_cst (vr_result->type (), 1));