diff options
author | Richard Guenther <rguenther@suse.de> | 2008-08-21 11:25:28 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2008-08-21 11:25:28 +0000 |
commit | 08298a8c195e4bf6f8e32d309de9ac7ea6ba0962 (patch) | |
tree | 610e178ec54f2b0d0f38da0dfdb5f3a5065c0490 | |
parent | 96501113618dd86ec855db2931c1b5f9038c3e51 (diff) | |
download | gcc-08298a8c195e4bf6f8e32d309de9ac7ea6ba0962.zip gcc-08298a8c195e4bf6f8e32d309de9ac7ea6ba0962.tar.gz gcc-08298a8c195e4bf6f8e32d309de9ac7ea6ba0962.tar.bz2 |
re PR tree-optimization/37181 (FAIL: Divide_1 -O3)
2008-08-21 Richard Guenther <rguenther@suse.de>
PR tree-optimization/37181
* tree-vrp.c (extract_range_from_binary_expr): Check for NULL
folding result.
(extract_range_from_unary_expr): Likewise.
From-SVN: r139375
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/tree-vrp.c | 6 |
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2f3db96..98a28e6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2008-08-21 Richard Guenther <rguenther@suse.de> + + PR tree-optimization/37181 + * tree-vrp.c (extract_range_from_binary_expr): Check for NULL + folding result. + (extract_range_from_unary_expr): Likewise. + 2008-08-21 Manuel Lopez-Ibanez <manu@gcc.gnu.org> * diagnostic.c (pedwarn_at): Rename as pedwarn. diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c index a71002f..a61f292 100644 --- a/gcc/tree-vrp.c +++ b/gcc/tree-vrp.c @@ -2062,7 +2062,8 @@ extract_range_from_binary_expr (value_range_t *vr, && (op1 = op_with_constant_singleton_value_range (op1)) != NULL_TREE) { tree tem = fold_binary (code, expr_type, op0, op1); - if (is_gimple_min_invariant (tem) + if (tem + && is_gimple_min_invariant (tem) && !is_overflow_infinity (tem)) { set_value_range (vr, VR_RANGE, tem, tem, NULL); @@ -2477,7 +2478,8 @@ extract_range_from_unary_expr (value_range_t *vr, enum tree_code code, if ((op0 = op_with_constant_singleton_value_range (op0)) != NULL_TREE) { tree tem = fold_unary (code, type, op0); - if (is_gimple_min_invariant (tem) + if (tem + && is_gimple_min_invariant (tem) && !is_overflow_infinity (tem)) { set_value_range (vr, VR_RANGE, tem, tem, NULL); |