re PR tree-optimization/30318 (VRP does not create ANTI_RANGEs on overflow)
authorRichard Guenther <rguenther@suse.de>
Wed, 20 Jun 2012 12:00:20 +0000 (12:00 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 20 Jun 2012 12:00:20 +0000 (12:00 +0000)
commita75f501709fc1562a96064688ca925d48562f131
treeae891f75a04882bf1c2ff53acc70ff8098a7b83d
parent942ee091499bdbd14e70b501038e739ebb48980b
re PR tree-optimization/30318 (VRP does not create ANTI_RANGEs on overflow)

2012-06-20  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/30318
* tree-vrp.c (range_int_cst_p): Do not reject overflowed
constants here.
(range_int_cst_singleton_p): But explicitely here.
(zero_nonzero_bits_from_vr): And here.
(extract_range_from_binary_expr_1): Re-implement PLUS_EXPR
to cover all cases we can perform arbitrary precision
arithmetic with double-ints.
(intersect_ranges): Handle adjacent anti-ranges.

* gcc.dg/tree-ssa/vrp69.c: New testcase.

From-SVN: r188827
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/tree-ssa/vrp69.c [new file with mode: 0644]
gcc/tree-vrp.c