From 1e678f69f7dc995a55d2cf0b4a10ffce88c0f776 Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Thu, 4 Jan 2018 19:13:55 +0000 Subject: [PATCH] Protect second call to extract_range_from_multiplicative_op_1 Following on from: * tree-vrp.c (extract_range_from_multiplicative_op_1): Assert for VR_RANGE only; don't allow VR_ANTI_RANGE. (extract_range_from_binary_expr_1): Don't call extract_range_from_multiplicative_op_1 if !range_int_cst_p. there was a later call to extract_range_from_multiplicative_op_1 too, that used a negative test for a symbolic (!is_gimple_min_invariant) range rather than a positive test for an integer range. 2017-11-04 Richard Sandiford gcc/ * tree-vrp.c (extract_range_from_binary_expr_1): Check range_int_cst_p rather than !symbolic_range_p before calling extract_range_from_multiplicative_op_1. From-SVN: r256262 --- gcc/ChangeLog | 6 ++++++ gcc/tree-vrp.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 26d9210a1b3..b981ff42487 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2018-01-04 Richard Sandiford + + * tree-vrp.c (extract_range_from_binary_expr_1): Check + range_int_cst_p rather than !symbolic_range_p before calling + extract_range_from_multiplicative_op_1. + 2017-01-04 Jeff Law * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Remove diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index e6f04bb0bd9..69762ab795e 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -2042,7 +2042,7 @@ extract_range_from_binary_expr_1 (value_range *vr, return; } } - else if (!symbolic_range_p (&vr0) && !symbolic_range_p (&vr1)) + else if (range_int_cst_p (&vr0) && range_int_cst_p (&vr1)) { extract_range_from_multiplicative_op_1 (vr, code, &vr0, &vr1); return; -- 2.30.2