diff options
author | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-22 20:11:09 +0000 |
---|---|---|
committer | rguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2006-10-22 20:11:09 +0000 |
commit | fecf3b391a1fe03fa6295de0afe5ace3e995763c (patch) | |
tree | 8695afab2bc8d1fcab73a86cb9eadef594bd4121 /gcc/testsuite | |
parent | b6a0d8da7fb14237e7b829f086e78041c410ceaf (diff) | |
download | gcc-fecf3b391a1fe03fa6295de0afe5ace3e995763c.tar.gz |
2006-10-22 Jeff Law <law@redhat.com>
Richard Guenther <rguenther@suse.de>
PR tree-optimization/15911
* tree-vrp.c (extract_code_and_val_from_cond): New function.
(register_edge_assert_for_1): Likewise.
(register_edge_assert_for): Handle &&/&/||/| in conditionals.
(find_conditional_asserts): Adjust for new function signature.
(find_assert_locations): Likewise.
* gcc.dg/tree-ssa/vrp30.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117960 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/vrp30.c | 30 |
2 files changed, 36 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 1d6b02b86af..860107e2338 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2006-10-22 Jeff Law <law@redhat.com> + Richard Guenther <rguenther@suse.de> + + PR tree-optimization/15911 + * gcc.dg/tree-ssa/vrp30.c: New testcase. + 2006-10-22 Nathan Sidwell <nathan@codesourcery.com> PR c++/20647 diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp30.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp30.c new file mode 100644 index 00000000000..245dcfb74c5 --- /dev/null +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp30.c @@ -0,0 +1,30 @@ +/* { dg-do link } */ +/* { dg-options "-O2" } */ + +extern int link_error (int); + +int tst2 (int x, int y) +{ + /* VRP should be able to extract range information for + x and y out of this TRUTH_AND_EXPR. */ + if ((x > 5555) && (y < 6666)) + { + if (x > 5555) + if (y < 6666) + return 1111; + else + return link_error (2222); + else + if (y < 6666) + return link_error (3333); + else + return link_error (4444); + } + else + return 0; +} + +int main() +{ + return 0; +} |