summaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2019-11-14 07:03:30 +0000
committerAldy Hernandez <aldyh@gcc.gnu.org>2019-11-14 07:03:30 +0000
commit6ee86466ad973510f4a8e13cf356acf919b9fa20 (patch)
tree947226c138b6c939062716fbc0cb6bba4ed69bf1 /gcc/tree-vrp.c
parent9773f69c1161677e68f693562da82c92fd3821da (diff)
Make normalize_addresses and normalize_symbolics work on THIS, instead
of returning by value. From-SVN: r278196
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r--gcc/tree-vrp.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index c47c65bd294..ff66bed4b03 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -1182,8 +1182,10 @@ range_fold_binary_symbolics_p (value_range *vr,
return true;
}
const range_operator *op = get_range_op_handler (vr, code, expr_type);
- op->fold_range (*vr, expr_type, vr0->normalize_symbolics (),
- vr1->normalize_symbolics ());
+ value_range vr0_cst (*vr0), vr1_cst (*vr1);
+ vr0_cst.normalize_symbolics ();
+ vr1_cst.normalize_symbolics ();
+ op->fold_range (*vr, expr_type, vr0_cst, vr1_cst);
return true;
}
return false;
@@ -1217,8 +1219,9 @@ range_fold_unary_symbolics_p (value_range *vr,
return true;
}
const range_operator *op = get_range_op_handler (vr, code, expr_type);
- op->fold_range (*vr, expr_type, vr0->normalize_symbolics (),
- value_range (expr_type));
+ value_range vr0_cst (*vr0);
+ vr0_cst.normalize_symbolics ();
+ op->fold_range (*vr, expr_type, vr0_cst, value_range (expr_type));
return true;
}
return false;
@@ -1245,8 +1248,9 @@ range_fold_binary_expr (value_range *vr,
if (range_fold_binary_symbolics_p (vr, code, expr_type, &vr0, &vr1))
return;
- op->fold_range (*vr, expr_type, vr0.normalize_addresses (),
- vr1.normalize_addresses ());
+ vr0.normalize_addresses ();
+ vr1.normalize_addresses ();
+ op->fold_range (*vr, expr_type, vr0, vr1);
}
/* Perform a unary operation on a range. */
@@ -1267,8 +1271,9 @@ range_fold_unary_expr (value_range *vr,
if (range_fold_unary_symbolics_p (vr, code, expr_type, vr0))
return;
- op->fold_range (*vr, expr_type, vr0->normalize_addresses (),
- value_range (expr_type));
+ value_range vr0_cst (*vr0);
+ vr0_cst.normalize_addresses ();
+ op->fold_range (*vr, expr_type, vr0_cst, value_range (expr_type));
}
/* Given a COND_EXPR COND of the form 'V OP W', and an SSA name V,