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  <richard.sandiford@linaro.org>

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
This commit is contained in:
Richard Sandiford 2018-01-04 19:13:55 +00:00 committed by Richard Sandiford
parent 682820ccf9
commit 1e678f69f7
2 changed files with 7 additions and 1 deletions

View File

@ -1,3 +1,9 @@
2018-01-04 Richard Sandiford <richard.sandiford@linaro.org>
* 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 <law@redhat.com>
* tree-ssa-math-opts.c (execute_cse_reciprocals_1): Remove

View File

@ -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;