diff options
author | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-06-06 20:39:46 +0000 |
---|---|---|
committer | bstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-06-06 20:39:46 +0000 |
commit | e97da9acca05b56be99bfd9abd8b83e5db5268fb (patch) | |
tree | fcab715a6c79d738a81d753254714e02889ad105 /gcc/testsuite/gcc.dg | |
parent | 76d6e5e429f5ca1ba89341e4fd3cbd5f4a6f055f (diff) | |
download | gcc-e97da9acca05b56be99bfd9abd8b83e5db5268fb.tar.gz |
2008-06-06 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r136492
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@136504 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/gcc.dg')
-rw-r--r-- | gcc/testsuite/gcc.dg/cdce1.c | 80 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/cdce2.c | 55 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/gomp/appendix-a/a.35.4.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/gomp/appendix-a/a.35.6.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/gomp/collapse-1.c | 92 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/gomp/nesting-1.c | 198 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/gomp/pr27499.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/alias-18.c | 4 |
8 files changed, 430 insertions, 5 deletions
diff --git a/gcc/testsuite/gcc.dg/cdce1.c b/gcc/testsuite/gcc.dg/cdce1.c new file mode 100644 index 00000000000..26d38ae40f5 --- /dev/null +++ b/gcc/testsuite/gcc.dg/cdce1.c @@ -0,0 +1,80 @@ +/* { dg-do run { target { ! "*-*-darwin" } } } */ +/* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -lm" } */ +/* { dg-final { scan-tree-dump "cdce1.c:16: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ +/* { dg-final { cleanup-tree-dump "cdce" } } */ + + +#include <stdlib.h> +#include <math.h> +#include <errno.h> +int total_err_count = 0; +double foo_opt (int x, double y) __attribute__((noinline)); +double foo_opt (int x, double y) +{ + double yy = 0; + errno = 0; + yy = pow (x, y * y); + return 0; +} + +double foo (int x, double y) __attribute__((noinline)); +double foo (int x, double y) +{ + double yy = 0; + errno = 0; + yy = pow (x, y * y); + return yy; +} + +int test (double (*fp)(int x, double y)) +{ + int i,x; + + x = 127; + for (i = 30; i < 300; i++) + { + fp (x, i); + if (errno) + total_err_count ++; + } + + x = -300; + for (i = 100; i < 300; i++) + { + fp (x, i); + if (errno) + total_err_count ++; + } + + x = 65577; + for (i = 60; i < 200; i++) + { + fp (x, i); + if (errno) + total_err_count ++; + } + + x = 65577 * 127; + for (i = 1; i < 100; i++) + { + fp (x, i); + if (errno) + total_err_count ++; + } + + return total_err_count; +} + +int main () +{ + int en1, en2; + total_err_count = 0; + en1 = test (foo_opt); + total_err_count = 0; + en2 = test (foo); + + if (en1 != en2) + abort (); + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/cdce2.c b/gcc/testsuite/gcc.dg/cdce2.c new file mode 100644 index 00000000000..ba9e4962050 --- /dev/null +++ b/gcc/testsuite/gcc.dg/cdce2.c @@ -0,0 +1,55 @@ +/* { dg-do run { target { ! "*-*-darwin" } } } */ +/* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -lm" } */ +/* { dg-final { scan-tree-dump "cdce2.c:16: note: function call is shrink-wrapped into error conditions\." "cdce" } }*/ +/* { dg-final { cleanup-tree-dump "cdce" } } */ + + +#include <stdlib.h> +#include <math.h> +#include <errno.h> +int total_err_count = 0; +double foo_opt (double y) __attribute__((noinline)); +double foo_opt (double y) +{ + double yy = 0; + errno = 0; + yy = log (y); + return 0; +} + +double foo (double y) __attribute__((noinline)); +double foo (double y) +{ + double yy = 0; + errno = 0; + yy = log (y); + return yy; +} + +int test (double (*fp) (double y)) +{ + int i,x; + for (i = -100; i < 100; i++) + { + fp (i); + if (errno) + total_err_count ++; + } + + return total_err_count; +} + +int main () +{ + int en1, en2; + double yy; + total_err_count = 0; + en1 = test (foo_opt); + total_err_count = 0; + en2 = test (foo); + + if (en1 != en2) + abort(); + + return 0; +} diff --git a/gcc/testsuite/gcc.dg/gomp/appendix-a/a.35.4.c b/gcc/testsuite/gcc.dg/gomp/appendix-a/a.35.4.c index 88824031cc2..d7579e6e735 100644 --- a/gcc/testsuite/gcc.dg/gomp/appendix-a/a.35.4.c +++ b/gcc/testsuite/gcc.dg/gomp/appendix-a/a.35.4.c @@ -11,7 +11,7 @@ wrong4 (int n) { work (i, 0); /* incorrect nesting of barrier region in a loop region */ -#pragma omp barrier +#pragma omp barrier /* { dg-warning "may not be closely nested" } */ work (i, 1); } } diff --git a/gcc/testsuite/gcc.dg/gomp/appendix-a/a.35.6.c b/gcc/testsuite/gcc.dg/gomp/appendix-a/a.35.6.c index 6385db30897..ac850e5410a 100644 --- a/gcc/testsuite/gcc.dg/gomp/appendix-a/a.35.6.c +++ b/gcc/testsuite/gcc.dg/gomp/appendix-a/a.35.6.c @@ -9,7 +9,7 @@ wrong6 (int n) { work (n, 0); /* incorrect nesting of barrier region in a single region */ -#pragma omp barrier +#pragma omp barrier /* { dg-warning "may not be closely nested" } */ work (n, 1); } } diff --git a/gcc/testsuite/gcc.dg/gomp/collapse-1.c b/gcc/testsuite/gcc.dg/gomp/collapse-1.c new file mode 100644 index 00000000000..89b76bb669c --- /dev/null +++ b/gcc/testsuite/gcc.dg/gomp/collapse-1.c @@ -0,0 +1,92 @@ +/* { dg-do compile } */ +/* { dg-options "-fopenmp" } */ + +int i, j, k; +extern int foo (void); + +void +f1 (void) +{ + #pragma omp for collapse (2) + for (i = 0; i < 5; i++) + ; /* { dg-error "not enough perfectly nested" } */ + { + for (j = 0; j < 5; j++) + ; + } +} + +void +f2 (void) +{ + #pragma omp for collapse (2) + for (i = 0; i < 5; i++) + { + { + { + for (j = 0; j < 5; j++) + { + } + } + } + } +} + +void +f3 (void) +{ + #pragma omp for collapse (2) + for (i = 0; i < 5; i++) + { + int k = foo (); /* { dg-error "not enough perfectly nested" } */ + { + { + for (j = 0; j < 5; j++) + { + } + } + } + } +} + +void +f4 (void) +{ + #pragma omp for collapse (2) + for (i = 0; i < 5; i++) + { + { + for (j = 0; j < 5; j++) + ; + foo (); /* { dg-error "collapsed loops not perfectly nested before" } */ + } + } +} + +void +f5 (void) +{ + #pragma omp for collapse (2) + for (i = 0; i < 5; i++) + { + { + for (j = 0; j < 5; j++) + ; + } + foo (); /* { dg-error "collapsed loops not perfectly nested before" } */ + } +} + +void +f6 (void) +{ + #pragma omp for collapse (2) + for (i = 0; i < 5; i++) + { + { + for (j = 0; j < 5; j++) + ; + } + } + foo (); +} diff --git a/gcc/testsuite/gcc.dg/gomp/nesting-1.c b/gcc/testsuite/gcc.dg/gomp/nesting-1.c new file mode 100644 index 00000000000..6f27b907e6b --- /dev/null +++ b/gcc/testsuite/gcc.dg/gomp/nesting-1.c @@ -0,0 +1,198 @@ +/* { dg-do compile } */ +/* { dg-options "-fopenmp" } */ + +void +f1 (void) +{ + int i, j; + #pragma omp for + for (i = 0; i < 3; i++) + { + #pragma omp for /* { dg-warning "may not be closely nested" } */ + for (j = 0; j < 3; j++) + ; + #pragma omp sections /* { dg-warning "may not be closely nested" } */ + { + ; + #pragma omp section + ; + } + #pragma omp single /* { dg-warning "may not be closely nested" } */ + ; + #pragma omp master /* { dg-warning "may not be closely nested" } */ + ; + #pragma omp barrier /* { dg-warning "may not be closely nested" } */ + } + #pragma omp sections + { + #pragma omp for /* { dg-warning "may not be closely nested" } */ + for (j = 0; j < 3; j++) + ; + #pragma omp sections /* { dg-warning "may not be closely nested" } */ + { + ; + #pragma omp section + ; + } + #pragma omp single /* { dg-warning "may not be closely nested" } */ + ; + #pragma omp master /* { dg-warning "may not be closely nested" } */ + ; + #pragma omp section + ; + } + #pragma omp single + { + #pragma omp for /* { dg-warning "may not be closely nested" } */ + for (j = 0; j < 3; j++) + ; + #pragma omp sections /* { dg-warning "may not be closely nested" } */ + { + ; + #pragma omp section + ; + } + #pragma omp single /* { dg-warning "may not be closely nested" } */ + ; + #pragma omp master /* { dg-warning "may not be closely nested" } */ + ; + #pragma omp barrier /* { dg-warning "may not be closely nested" } */ + } + #pragma omp master + { + #pragma omp for /* { dg-warning "may not be closely nested" } */ + for (j = 0; j < 3; j++) + ; + #pragma omp sections /* { dg-warning "may not be closely nested" } */ + { + ; + #pragma omp section + ; + } + #pragma omp single /* { dg-warning "may not be closely nested" } */ + ; + #pragma omp master + ; + #pragma omp barrier /* { dg-warning "may not be closely nested" } */ + } + #pragma omp task + { + #pragma omp for /* { dg-warning "may not be closely nested" } */ + for (j = 0; j < 3; j++) + ; + #pragma omp sections /* { dg-warning "may not be closely nested" } */ + { + ; + #pragma omp section + ; + } + #pragma omp single /* { dg-warning "may not be closely nested" } */ + ; + #pragma omp master /* { dg-warning "may not be closely nested" } */ + ; + #pragma omp barrier /* { dg-warning "may not be closely nested" } */ + } + #pragma omp parallel + { + #pragma omp for + for (j = 0; j < 3; j++) + ; + #pragma omp sections + { + ; + #pragma omp section + ; + } + #pragma omp single + ; + #pragma omp master + ; + #pragma omp barrier + } +} + +void +f2 (void) +{ + int i, j; + #pragma omp ordered + { + #pragma omp for /* { dg-warning "may not be closely nested" } */ + for (j = 0; j < 3; j++) + ; + #pragma omp sections /* { dg-warning "may not be closely nested" } */ + { + ; + #pragma omp section + ; + } + #pragma omp single /* { dg-warning "may not be closely nested" } */ + ; + #pragma omp master + ; + #pragma omp barrier /* { dg-warning "may not be closely nested" } */ + } +} + +void +f3 (void) +{ + #pragma omp critical + { + #pragma omp ordered /* { dg-warning "may not be closely nested" } */ + ; + } +} + +void +f4 (void) +{ + #pragma omp task + { + #pragma omp ordered /* { dg-warning "may not be closely nested" } */ + ; + } +} + +void +f5 (void) +{ + int i; + #pragma omp for + for (i = 0; i < 10; i++) + { + #pragma omp ordered /* { dg-warning "must be closely nested" } */ + ; + } + #pragma omp for ordered + for (i = 0; i < 10; i++) + { + #pragma omp ordered + ; + } +} + +void +f6 (void) +{ + #pragma omp critical (foo) + #pragma omp critical (bar) + ; + #pragma omp critical + #pragma omp critical (baz) + ; +} + +void +f7 (void) +{ + #pragma omp critical (foo2) + #pragma omp critical + ; + #pragma omp critical (bar) + #pragma omp critical (bar) /* { dg-warning "may not be nested" } */ + ; + #pragma omp critical + #pragma omp critical /* { dg-warning "may not be nested" } */ + ; +} diff --git a/gcc/testsuite/gcc.dg/gomp/pr27499.c b/gcc/testsuite/gcc.dg/gomp/pr27499.c index e8c1db496d7..0de2e0686f1 100644 --- a/gcc/testsuite/gcc.dg/gomp/pr27499.c +++ b/gcc/testsuite/gcc.dg/gomp/pr27499.c @@ -8,6 +8,6 @@ foo (void) { unsigned int i; #pragma omp parallel for - for (i = 0; i < 64; ++i) /* { dg-warning "is unsigned" } */ + for (i = 0; i < 64; ++i) bar (i); } diff --git a/gcc/testsuite/gcc.dg/tree-ssa/alias-18.c b/gcc/testsuite/gcc.dg/tree-ssa/alias-18.c index 9ef3f2aadb7..84d884effb5 100644 --- a/gcc/testsuite/gcc.dg/tree-ssa/alias-18.c +++ b/gcc/testsuite/gcc.dg/tree-ssa/alias-18.c @@ -78,10 +78,10 @@ int test8 (struct A *p, int *q) /* { dg-final { scan-tree-dump "with 0" "fre" } } */ /* { dg-final { scan-tree-dump "with 1" "fre" { xfail *-*-* } } } */ -/* { dg-final { scan-tree-dump "with 3" "fre" } } */ +/* { dg-final { scan-tree-dump "with 3" "fre" { xfail *-*-* } } } */ /* { dg-final { scan-tree-dump "with 4" "fre" } } */ /* { dg-final { scan-tree-dump "with 5" "fre" } } */ -/* { dg-final { scan-tree-dump "with 8" "fre" } } */ +/* { dg-final { scan-tree-dump "with 8" "fre" { xfail *-*-* } } } */ /* { dg-final { scan-tree-dump-not "return 2;" "optimized" } } */ /* { dg-final { scan-tree-dump-not "return 6;" "optimized" } } */ /* { dg-final { scan-tree-dump-not "return 7;" "optimized" } } */ |