diff options
author | Richard Biener <rguenther@suse.de> | 2016-06-14 07:22:04 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2016-06-14 07:22:04 +0000 |
commit | 90b72e84c427d4e735ae98dc06fe84fc1ec8139b (patch) | |
tree | ad08ab03d531f17d0180aa5adf94b8ff4dcb4681 /gcc/tree-vrp.c | |
parent | 3db5773f7083637c9adb2481d35389495309bc05 (diff) | |
download | gcc-90b72e84c427d4e735ae98dc06fe84fc1ec8139b.zip gcc-90b72e84c427d4e735ae98dc06fe84fc1ec8139b.tar.gz gcc-90b72e84c427d4e735ae98dc06fe84fc1ec8139b.tar.bz2 |
re PR tree-optimization/71521 (Regression in GCC-7.0.0's optimizer)
2016-06-14 Richard Biener <rguenther@suse.de>
PR tree-optimization/71521
* tree-vrp.c (extract_range_from_binary_expr_1): Guard
division int_const_binop against zero divisor.
* gcc.dg/tree-ssa/vrp101.c: New testcase.
From-SVN: r237425
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r-- | gcc/tree-vrp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index 68f2e90..ecfab1f 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -2938,7 +2938,8 @@ extract_range_from_binary_expr_1 (value_range *vr, and divisor are available. */ if (vr1.type == VR_RANGE && !symbolic_range_p (&vr0) - && !symbolic_range_p (&vr1)) + && !symbolic_range_p (&vr1) + && compare_values (vr1.max, zero) != 0) min = int_const_binop (code, vr0.min, vr1.max); else min = zero; |