aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2007-06-09 16:28:31 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2007-06-09 16:28:31 +0000
commit9c4ed267d69057cf5307b896a9466daf3e55f5d5 (patch)
tree8bb4c1810d65b5f93973d77fd9499addb7a3e0be /gcc/tree-vrp.c
parent84152c25a53201930fd73cb13a905d8335367971 (diff)
downloadgcc-9c4ed267d69057cf5307b896a9466daf3e55f5d5.zip
gcc-9c4ed267d69057cf5307b896a9466daf3e55f5d5.tar.gz
gcc-9c4ed267d69057cf5307b896a9466daf3e55f5d5.tar.bz2
re PR tree-optimization/32169 (Ice in set_value_range, at tree-vrp.c:326)
./: PR tree-optimization/32169 * tree-vrp.c (extract_range_from_unary_expr): For NOP_EXPR and CONVERT_EXPR, check whether min and max both converted to an overflow infinity representation. testsuite/: PR tree-optimization/32169 * gcc.c-torture/compile/pr32169.c: New test. From-SVN: r125591
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r--gcc/tree-vrp.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 7506092..2a51de7 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -2208,6 +2208,8 @@ extract_range_from_unary_expr (value_range_t *vr, tree expr)
&& is_gimple_val (new_max)
&& tree_int_cst_equal (new_min, orig_min)
&& tree_int_cst_equal (new_max, orig_max)
+ && (!is_overflow_infinity (new_min)
+ || !is_overflow_infinity (new_max))
&& (cmp = compare_values (new_min, new_max)) <= 0
&& cmp >= -1)
{