From: Richard Sandiford Date: Thu, 4 Jan 2018 19:13:55 +0000 (+0000) Subject: Protect second call to extract_range_from_multiplicative_op_1 X-Git-Tag: basepoints/gcc-9~2223 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1e678f69f7dc995a55d2cf0b4a10ffce88c0f776;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 26d9210a1b36..b981ff42487e 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 e6f04bb0bd9d..69762ab795e0 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;