summaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2006-10-22 20:11:09 +0000
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>2006-10-22 20:11:09 +0000
commitfecf3b391a1fe03fa6295de0afe5ace3e995763c (patch)
tree8695afab2bc8d1fcab73a86cb9eadef594bd4121 /gcc/testsuite
parentb6a0d8da7fb14237e7b829f086e78041c410ceaf (diff)
downloadgcc-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/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/vrp30.c30
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;
+}