33 lines · cpp
1// RUN: %clang_cc1 %s -fopenacc -verify2 3template<typename T>4void SingleOnly() {5 #pragma acc parallel loop default(none)6 for (unsigned I = 0; I < 5; ++I);7 8 int i;9 10 // expected-error@+2{{OpenACC 'default' clause cannot appear more than once on a 'parallel loop' directive}}11 // expected-note@+1{{previous 'default' clause is here}}12 #pragma acc parallel loop default(present) async default(none)13 for (unsigned I = 0; I < 5; ++I);14 15 // expected-error@+2{{OpenACC 'default' clause cannot appear more than once on a 'serial loop' directive}}16 // expected-note@+1{{previous 'default' clause is here}}17 #pragma acc serial loop async default(present) copy(i) default(none) self18 for (unsigned I = 0; I < 5; ++I);19 20 // expected-error@+2{{OpenACC 'default' clause cannot appear more than once on a 'kernels loop' directive}}21 // expected-note@+1{{previous 'default' clause is here}}22 #pragma acc kernels loop async default(present) copy(i) default(none) self23 for (unsigned I = 0; I < 5; ++I);24 25 // expected-error@+1{{expected '('}}26 #pragma acc parallel loop async default(none) copy(i) default self27 for (unsigned I = 0; I < 5; ++I);28}29 30void Instantiate() {31 SingleOnly<int>();32}33