diff options
author | Richard Biener <rguenther@suse.de> | 2019-07-25 12:05:19 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2019-07-25 12:05:19 +0000 |
commit | e2cfa983c31fa7886f496a47feb8714297ca0063 (patch) | |
tree | 8420353f6db2827ae4b9113bfca65049e5b004ad /gcc | |
parent | c9357dc13bdc10df1eba95d7b79ee2d3ae4fbbc6 (diff) | |
download | gcc-e2cfa983c31fa7886f496a47feb8714297ca0063.zip gcc-e2cfa983c31fa7886f496a47feb8714297ca0063.tar.gz gcc-e2cfa983c31fa7886f496a47feb8714297ca0063.tar.bz2 |
tree-vrp.c (extract_range_from_multiplicative_op): Add type parameter and use it instead of guessing expression type from the...
2019-07-25 Richard Biener <rguenther@suse.de>
* tree-vrp.c (extract_range_from_multiplicative_op): Add
type parameter and use it instead of guessing expression
type from the first operand.
(extract_range_from_binary_expr): Pass expr_type down.
From-SVN: r273797
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/tree-vrp.c | 8 |
2 files changed, 11 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 05c8263..87a4ecd 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2019-07-25 Richard Biener <rguenther@suse.de> + + * tree-vrp.c (extract_range_from_multiplicative_op): Add + type parameter and use it instead of guessing expression + type from the first operand. + (extract_range_from_binary_expr): Pass expr_type down. + 2019-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * config/arm/arm.md (SATrev): Change to code attribute. diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index add6ad5..9ba6f80 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -1238,7 +1238,7 @@ extract_range_into_wide_ints (const value_range_base *vr, static void extract_range_from_multiplicative_op (value_range_base *vr, - enum tree_code code, + enum tree_code code, tree type, const value_range_base *vr0, const value_range_base *vr1) { @@ -1253,7 +1253,6 @@ extract_range_from_multiplicative_op (value_range_base *vr, gcc_assert (vr0->kind () == VR_RANGE && vr0->kind () == vr1->kind ()); - tree type = vr0->type (); wide_int res_lb, res_ub; wide_int vr0_lb = wi::to_wide (vr0->min ()); wide_int vr0_ub = wi::to_wide (vr0->max ()); @@ -1785,7 +1784,7 @@ extract_range_from_binary_expr (value_range_base *vr, vr->set_varying (); return; } - extract_range_from_multiplicative_op (vr, code, &vr0, &vr1); + extract_range_from_multiplicative_op (vr, code, expr_type, &vr0, &vr1); return; } else if (code == RSHIFT_EXPR @@ -1806,7 +1805,8 @@ extract_range_from_binary_expr (value_range_base *vr, if (vr0.kind () != VR_RANGE || vr0.symbolic_p ()) vr0.set (VR_RANGE, vrp_val_min (expr_type), vrp_val_max (expr_type)); - extract_range_from_multiplicative_op (vr, code, &vr0, &vr1); + extract_range_from_multiplicative_op (vr, code, expr_type, + &vr0, &vr1); return; } else if (code == LSHIFT_EXPR |