1 // RUN: %clang_cc1 %s -fopenacc -verify 2 3 void SingleOnly() { 4 #pragma acc parallel loop default(none) 5 for(int i = 5; i < 10;++i); 6 7 // expected-error@+2{{OpenACC 'default' clause cannot appear more than once on a 'serial loop' directive}} 8 // expected-note@+1{{previous clause is here}} 9 #pragma acc serial loop default(present) self default(none) 10 for(int i = 5; i < 10;++i); 11 12 int i; 13 14 // expected-error@+2{{OpenACC 'default' clause cannot appear more than once on a 'kernels loop' directive}} 15 // expected-note@+1{{previous clause is here}} 16 #pragma acc kernels loop self default(present) present(i) default(none) copy(i) 17 for(int i = 5; i < 10;++i); 18 19 // expected-error@+2{{OpenACC 'default' clause cannot appear more than once on a 'parallel loop' directive}} 20 // expected-note@+1{{previous clause is here}} 21 #pragma acc parallel loop self default(present) private(i) default(none) copy(i) 22 for(int i = 0; i < 5; ++i); 23 24 // expected-error@+1{{expected '('}} 25 #pragma acc serial loop self default private(i) default(none) if(i) 26 for(int i = 0; i < 5; ++i); 27 28 #pragma acc kernels loop default(none) 29 for(int i = 0; i < 5; ++i); 30 31 #pragma acc data default(none) 32 while(0); 33 34 // expected-error@+1{{OpenACC 'default' clause is not valid on 'loop' directive}} 35 #pragma acc loop default(none) 36 for(int i = 5; i < 10;++i); 37 38 // expected-error@+1{{OpenACC 'default' clause is not valid on 'wait' directive}} 39 #pragma acc wait default(none) 40 while(0); 41 42 // expected-error@+1{{OpenACC 'default' clause is not valid on 'loop' directive}} 43 #pragma acc loop default(present) 44 for(int i = 5; i < 10;++i); 45 } 46