diff options
Diffstat (limited to 'gcc/testsuite/c-c++-common/goacc-gomp/nesting-fail-1.c')
-rw-r--r-- | gcc/testsuite/c-c++-common/goacc-gomp/nesting-fail-1.c | 36 |
1 files changed, 16 insertions, 20 deletions
diff --git a/gcc/testsuite/c-c++-common/goacc-gomp/nesting-fail-1.c b/gcc/testsuite/c-c++-common/goacc-gomp/nesting-fail-1.c index 5e3f183998a..1a3324200e2 100644 --- a/gcc/testsuite/c-c++-common/goacc-gomp/nesting-fail-1.c +++ b/gcc/testsuite/c-c++-common/goacc-gomp/nesting-fail-1.c @@ -1,4 +1,5 @@ extern int i; +#pragma acc declare create(i) void f_omp (void) @@ -14,6 +15,9 @@ f_omp (void) #pragma acc update host(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */ #pragma acc enter data copyin(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */ #pragma acc exit data delete(i) /* { dg-error "OpenACC construct inside of non-OpenACC region" } */ +#pragma acc loop /* { dg-error "loop directive must be associated with an OpenACC compute region" } */ + for (i = 0; i < 2; ++i) + ; } #pragma omp for @@ -358,85 +362,77 @@ f_acc_data (void) } } +#pragma acc routine void f_acc_loop (void) { -#pragma acc parallel #pragma acc loop for (i = 0; i < 2; ++i) { -#pragma omp parallel /* { dg-error "non-OpenACC construct inside of OpenACC region" } */ +#pragma omp parallel /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */ ; } -#pragma acc parallel #pragma acc loop for (i = 0; i < 2; ++i) { -#pragma omp for /* { dg-error "non-OpenACC construct inside of OpenACC region" } */ +#pragma omp for /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */ for (i = 0; i < 3; i++) ; } -#pragma acc parallel #pragma acc loop for (i = 0; i < 2; ++i) { -#pragma omp sections /* { dg-error "non-OpenACC construct inside of OpenACC region" } */ +#pragma omp sections /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */ { ; } } -#pragma acc parallel #pragma acc loop for (i = 0; i < 2; ++i) { -#pragma omp single /* { dg-error "non-OpenACC construct inside of OpenACC region" } */ +#pragma omp single /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */ ; } -#pragma acc parallel #pragma acc loop for (i = 0; i < 2; ++i) { -#pragma omp task /* { dg-error "non-OpenACC construct inside of OpenACC region" } */ +#pragma omp task /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */ ; } -#pragma acc parallel #pragma acc loop for (i = 0; i < 2; ++i) { -#pragma omp master /* { dg-error "non-OpenACC construct inside of OpenACC region" } */ +#pragma omp master /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */ ; } -#pragma acc parallel #pragma acc loop for (i = 0; i < 2; ++i) { -#pragma omp critical /* { dg-error "non-OpenACC construct inside of OpenACC region" } */ +#pragma omp critical /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */ ; } -#pragma acc parallel #pragma acc loop for (i = 0; i < 2; ++i) { -#pragma omp ordered /* { dg-error "non-OpenACC construct inside of OpenACC region" } */ +#pragma omp ordered /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */ ; } -#pragma acc parallel #pragma acc loop for (i = 0; i < 2; ++i) { -#pragma omp target /* { dg-error "non-OpenACC construct inside of OpenACC region" } */ +#pragma omp target /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */ ; -#pragma omp target data map(i) /* { dg-error "non-OpenACC construct inside of OpenACC region" } */ +#pragma omp target data map(i) /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */ ; -#pragma omp target update to(i) /* { dg-error "non-OpenACC construct inside of OpenACC region" } */ +#pragma omp target update to(i) /* { dg-error "non-OpenACC construct inside of OpenACC routine" } */ } } |