aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vrp.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2010-02-10 16:52:07 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2010-02-10 16:52:07 +0000
commit5418fe84c2377f7bff650c946fe8d667947b5984 (patch)
treec306e590d9ae4d96f7840c95f63704607326082f /gcc/tree-vrp.c
parent7fcd5ad54c243aa68714f9d9dad96c428b50f266 (diff)
downloadgcc-5418fe84c2377f7bff650c946fe8d667947b5984.zip
gcc-5418fe84c2377f7bff650c946fe8d667947b5984.tar.gz
gcc-5418fe84c2377f7bff650c946fe8d667947b5984.tar.bz2
re PR tree-optimization/43017 (VRP miscompiles python with -fwrapv, II)
2010-02-10 Richard Guenther <rguenther@suse.de> PR tree-optimization/43017 * tree-vrp.c (vrp_int_const_binop): Trust int_const_binop for wrapping signed arithmetic. * gcc.dg/torture/pr43017.c: New testcase. From-SVN: r156666
Diffstat (limited to 'gcc/tree-vrp.c')
-rw-r--r--gcc/tree-vrp.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 73dcf23..8164548 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -1937,6 +1937,10 @@ vrp_int_const_binop (enum tree_code code, tree val1, tree val2)
}
}
+ else if (TYPE_OVERFLOW_WRAPS (TREE_TYPE (val1)))
+ /* If the singed operation wraps then int_const_binop has done
+ everything we want. */
+ ;
else if ((TREE_OVERFLOW (res)
&& !TREE_OVERFLOW (val1)
&& !TREE_OVERFLOW (val2))