diff options
Diffstat (limited to 'gcc/vr-values.c')
-rw-r--r-- | gcc/vr-values.c | 10 |
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)); |