diff options
Diffstat (limited to 'gcc/testsuite')
-rw-r--r-- | gcc/testsuite/ChangeLog | 10 | ||||
-rw-r--r-- | gcc/testsuite/g++.dg/warn/Warray-bounds-6.C | 30 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/pr21559.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/vrp17.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/vrp18.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/vrp23.c | 7 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/vrp24.c | 8 |
7 files changed, 55 insertions, 19 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 53cbcf85ac2..e21dbf7dd8f 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2013-02-11 Richard Biener <rguenther@suse.de> + + PR tree-optimization/56273 + * g++.dg/warn/Warray-bounds-6.C: New testcase. + * gcc.dg/tree-ssa/pr21559.c: Adjust. + * gcc.dg/tree-ssa/vrp17.c: Likewise. + * gcc.dg/tree-ssa/vrp18.c: Likewise. + * gcc.dg/tree-ssa/vrp23.c: Likewise. + * gcc.dg/tree-ssa/vrp24.c: Likewise. + 2013-02-09 Uros Bizjak <ubizjak@gmail.com> * g++.dg/asan/asan_test.C: Compile with -D__NO_INLINE__ diff --git a/gcc/testsuite/g++.dg/warn/Warray-bounds-6.C b/gcc/testsuite/g++.dg/warn/Warray-bounds-6.C new file mode 100644 index 00000000000..ee2862f1ec1 --- /dev/null +++ b/gcc/testsuite/g++.dg/warn/Warray-bounds-6.C @@ -0,0 +1,30 @@ +// { dg-do compile } +// { dg-options "-O3 -Warray-bounds" } + +struct type { + bool a, b; + bool get_b() { return b; } +}; + +type stuff[9u]; + +void bar(); + +void foo() { + + for(unsigned i = 0u; i < 9u; i++) { + + if(!stuff[i].a) { + continue; + } + + bar(); + + for(unsigned j = i + 1u; j < 9u; j++) { + if(stuff[j].a && stuff[j].get_b()) { // { dg-bogus "array bounds" } + return; + } + } + + } +} diff --git a/gcc/testsuite/gcc.dg/tree-ssa/pr21559.c b/gcc/testsuite/gcc.dg/tree-ssa/pr21559.c index 34f4a01db00..d7d3bab154d 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/pr21559.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/pr21559.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-vrp1-details" } */ +/* { dg-options "-O2 -fdump-tree-vrp-details" } */ static int blocksize = 4096; @@ -32,7 +32,7 @@ void foo (void) /* First, we should simplify the bits < 0 test within the loop. */ -/* { dg-final { scan-tree-dump-times "Simplified relational" 1 "vrp1" } } */ +/* { dg-final { scan-tree-dump-times "Simplified relational" 1 "vrp2" } } */ /* Second, we should thread the edge out of the loop via the break statement. We also realize that the final bytes == 0 test is useless, @@ -40,4 +40,4 @@ void foo (void) /* { dg-final { scan-tree-dump-times "Threaded jump" 3 "vrp1" } } */ /* { dg-final { cleanup-tree-dump "vrp1" } } */ - +/* { dg-final { cleanup-tree-dump "vrp2" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp17.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp17.c index c04b9ba7843..c501a7f338f 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/vrp17.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp17.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-vrp1" } */ +/* { dg-options "-O2 -fdump-tree-vrp2" } */ extern void abort (void) __attribute__ ((__noreturn__)); union tree_node; @@ -27,6 +27,5 @@ gimplify_for_stmt (tree stmt) abort (); } -/* { dg-final { scan-tree-dump-times "Simplified relational" 1 "vrp1" } } */ -/* { dg-final { cleanup-tree-dump "vrp1" } } */ - +/* { dg-final { scan-tree-dump-times "Simplified relational" 1 "vrp2" } } */ +/* { dg-final { cleanup-tree-dump "vrp2" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp18.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp18.c index a3cc536ae56..610dd44cf2f 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/vrp18.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp18.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-vrp1" } */ +/* { dg-options "-O2 -fdump-tree-vrp2" } */ static int blocksize = 4096; @@ -30,5 +30,5 @@ void foo (void) eof_reached = 1; } -/* { dg-final { scan-tree-dump-times "Simplified relational" 1 "vrp1" } } */ -/* { dg-final { cleanup-tree-dump "vrp1" } } */ +/* { dg-final { scan-tree-dump-times "Simplified relational" 1 "vrp2" } } */ +/* { dg-final { cleanup-tree-dump "vrp2" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp23.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp23.c index 77899a65fca..6bca02b44e1 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/vrp23.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp23.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-vrp1-details" } */ +/* { dg-options "-O2 -fdump-tree-vrp2-details" } */ blah (int code1, int code2) { @@ -40,6 +40,5 @@ L8: /* The n_sets > 0 test can be simplified into n_sets == 1 since the only way to reach the test is when n_sets <= 1, and the only value which satisfies both conditions is n_sets == 1. */ -/* { dg-final { scan-tree-dump-times "Simplified relational" 1 "vrp1" } } */ -/* { dg-final { cleanup-tree-dump "vrp1" } } */ - +/* { dg-final { scan-tree-dump-times "Simplified relational" 1 "vrp2" } } */ +/* { dg-final { cleanup-tree-dump "vrp2" } } */ diff --git a/gcc/testsuite/gcc.dg/tree-ssa/vrp24.c b/gcc/testsuite/gcc.dg/tree-ssa/vrp24.c index 85e5b62d148..28e1a924f54 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/vrp24.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/vrp24.c @@ -1,6 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -fdump-tree-vrp1-details" } */ - +/* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-vrp2-details" } */ struct rtx_def; typedef struct rtx_def *rtx; @@ -86,6 +85,5 @@ L7: The second n_sets > 0 test can also be simplified into n_sets == 1 as the only way to reach the tests is when n_sets <= 1 and the only value which satisfies both conditions is n_sets == 1. */ -/* { dg-final { scan-tree-dump-times "Simplified relational" 2 "vrp1" } } */ -/* { dg-final { cleanup-tree-dump "vrp1" } } */ - +/* { dg-final { scan-tree-dump-times "Simplified relational" 2 "vrp2" } } */ +/* { dg-final { cleanup-tree-dump "vrp2" } } */ |