1 // RUN: %clang_cc1 %s -fopenacc -verify 2 3 void uses() { 4 int Var; 5 #pragma acc data default(none) device_type(foo) async 6 ; 7 #pragma acc data default(none) device_type(foo) wait 8 ; 9 #pragma acc data default(none) device_type(foo) dtype(false) 10 ; 11 #pragma acc data default(none) dtype(foo) device_type(false) 12 ; 13 14 // expected-error@+2{{OpenACC clause 'if' may not follow a 'device_type' clause in a 'data' construct}} 15 // expected-note@+1{{previous clause is here}} 16 #pragma acc data default(none) device_type(foo) if(1) 17 ; 18 // expected-error@+2{{OpenACC clause 'copy' may not follow a 'device_type' clause in a 'data' construct}} 19 // expected-note@+1{{previous clause is here}} 20 #pragma acc data default(none) device_type(foo) copy(Var) 21 ; 22 // expected-error@+2{{OpenACC clause 'copyin' may not follow a 'device_type' clause in a 'data' construct}} 23 // expected-note@+1{{previous clause is here}} 24 #pragma acc data default(none) device_type(foo) copyin(Var) 25 ; 26 // expected-error@+2{{OpenACC clause 'copyout' may not follow a 'device_type' clause in a 'data' construct}} 27 // expected-note@+1{{previous clause is here}} 28 #pragma acc data default(none) device_type(foo) copyout(Var) 29 ; 30 // expected-error@+2{{OpenACC clause 'create' may not follow a 'device_type' clause in a 'data' construct}} 31 // expected-note@+1{{previous clause is here}} 32 #pragma acc data default(none) device_type(foo) create(Var) 33 ; 34 // expected-error@+2{{OpenACC clause 'no_create' may not follow a 'device_type' clause in a 'data' construct}} 35 // expected-note@+1{{previous clause is here}} 36 #pragma acc data default(none) device_type(foo) no_create(Var) 37 ; 38 // expected-error@+2{{OpenACC clause 'present' may not follow a 'device_type' clause in a 'data' construct}} 39 // expected-note@+1{{previous clause is here}} 40 #pragma acc data default(none) device_type(foo) present(Var) 41 ; 42 // expected-error@+2{{OpenACC clause 'deviceptr' may not follow a 'device_type' clause in a 'data' construct}} 43 // expected-note@+1{{previous clause is here}} 44 #pragma acc data default(none) device_type(foo) deviceptr(Var) 45 ; 46 // expected-error@+2{{OpenACC clause 'attach' may not follow a 'device_type' clause in a 'data' construct}} 47 // expected-note@+1{{previous clause is here}} 48 #pragma acc data default(none) device_type(foo) attach(Var) 49 ; 50 // expected-error@+3{{OpenACC 'data' construct must have at least one 'copy', 'copyin', 'copyout', 'create', 'no_create', 'present', 'deviceptr', 'attach' or 'default' clause}} 51 // expected-error@+2{{OpenACC clause 'default' may not follow a 'device_type' clause in a 'data' construct}} 52 // expected-note@+1{{previous clause is here}} 53 #pragma acc data device_type(foo) default(none) 54 ; 55 } 56