1 // RUN: %clang_cc1 %s -verify -fopenacc 2 3 void func() { 4 int i, j; 5 6 #pragma acc wait 7 8 // expected-error@+1{{invalid OpenACC clause 'clause'}} 9 #pragma acc wait clause-list 10 11 // expected-error@+2{{expected ')'}} 12 // expected-note@+1{{to match this '('}} 13 #pragma acc wait ( 14 15 #pragma acc wait () 16 17 // expected-error@+1{{invalid OpenACC clause 'clause'}} 18 #pragma acc wait () clause-list 19 20 // expected-error@+3{{expected expression}} 21 // expected-error@+2{{expected ')'}} 22 // expected-note@+1{{to match this '('}} 23 #pragma acc wait (devnum: 24 25 // expected-error@+1{{expected expression}} 26 #pragma acc wait (devnum:) 27 28 // expected-error@+2{{expected expression}} 29 // expected-error@+1{{invalid OpenACC clause 'clause'}} 30 #pragma acc wait (devnum:) clause-list 31 32 // expected-error@+3{{expected ':'}} 33 // expected-error@+2{{expected ')'}} 34 // expected-note@+1{{to match this '('}} 35 #pragma acc wait (devnum: i + j 36 37 // expected-error@+1{{expected ':'}} 38 #pragma acc wait (devnum: i + j) 39 40 // expected-error@+2{{expected ':'}} 41 // expected-error@+1{{invalid OpenACC clause 'clause'}} 42 #pragma acc wait (devnum: i + j) clause-list 43 44 // expected-error@+2{{expected ')'}} 45 // expected-note@+1{{to match this '('}} 46 #pragma acc wait (queues: 47 48 #pragma acc wait (queues:) 49 50 // expected-error@+1{{invalid OpenACC clause 'clause'}} 51 #pragma acc wait (queues:) clause-list 52 53 // expected-error@+2{{expected ')'}} 54 // expected-note@+1{{to match this '('}} 55 #pragma acc wait (devnum: i + j:queues: 56 57 #pragma acc wait (devnum: i + j:queues:) 58 59 // expected-error@+1{{invalid OpenACC clause 'clause'}} 60 #pragma acc wait (devnum: i + j:queues:) clause-list 61 62 // expected-error@+4{{use of undeclared identifier 'devnum'}} 63 // expected-error@+3{{expected ','}} 64 // expected-error@+2{{expected ')'}} 65 // expected-note@+1{{to match this '('}} 66 #pragma acc wait (queues:devnum: i + j 67 68 // expected-error@+2{{use of undeclared identifier 'devnum'}} 69 // expected-error@+1{{expected ','}} 70 #pragma acc wait (queues:devnum: i + j) 71 72 // expected-error@+3{{use of undeclared identifier 'devnum'}} 73 // expected-error@+2{{expected ','}} 74 // expected-error@+1{{invalid OpenACC clause 'clause'}} 75 #pragma acc wait (queues:devnum: i + j) clause-list 76 77 // expected-error@+3{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}} 78 // expected-error@+2{{expected ')'}} 79 // expected-note@+1{{to match this '('}} 80 #pragma acc wait(i, j, 1+1, 3.3 81 82 // expected-error@+1{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}} 83 #pragma acc wait(i, j, 1+1, 3.3) 84 // expected-error@+2{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}} 85 // expected-error@+1{{invalid OpenACC clause 'clause'}} 86 #pragma acc wait(i, j, 1+1, 3.3) clause-list 87 88 // expected-error@+3{{expected expression}} 89 // expected-error@+2{{expected ')'}} 90 // expected-note@+1{{to match this '('}} 91 #pragma acc wait(, 92 93 // expected-error@+1{{expected expression}} 94 #pragma acc wait(,) 95 96 // expected-error@+2{{expected expression}} 97 // expected-error@+1{{invalid OpenACC clause 'clause'}} 98 #pragma acc wait(,) clause-list 99 100 // expected-error@+3{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}} 101 // expected-error@+2{{expected ')'}} 102 // expected-note@+1{{to match this '('}} 103 #pragma acc wait(queues:i, j, 1+1, 3.3 104 105 // expected-error@+4{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}} 106 // expected-error@+3{{expected expression}} 107 // expected-error@+2{{expected ')'}} 108 // expected-note@+1{{to match this '('}} 109 #pragma acc wait(queues:i, j, 1+1, 3.3, 110 111 // expected-error@+1{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}} 112 #pragma acc wait(queues:i, j, 1+1, 3.3) 113 114 // expected-error@+2{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}} 115 // expected-error@+1{{invalid OpenACC clause 'clause'}} 116 #pragma acc wait(queues:i, j, 1+1, 3.3) clause-list 117 118 // expected-error@+3{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}} 119 // expected-error@+2{{expected ')'}} 120 // expected-note@+1{{to match this '('}} 121 #pragma acc wait(devnum:3:i, j, 1+1, 3.3 122 // expected-error@+1{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}} 123 #pragma acc wait(devnum:3:i, j, 1+1, 3.3) 124 // expected-error@+2{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}} 125 // expected-error@+1{{invalid OpenACC clause 'clause'}} 126 #pragma acc wait(devnum:3:i, j, 1+1, 3.3) clause-list 127 128 // expected-error@+3{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}} 129 // expected-error@+2{{expected ')'}} 130 // expected-note@+1{{to match this '('}} 131 #pragma acc wait(devnum:3:queues:i, j, 1+1, 3.3 132 // expected-error@+1{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}} 133 #pragma acc wait(devnum:3:queues:i, j, 1+1, 3.3) 134 // expected-error@+2{{OpenACC directive 'wait' requires expression of integer type ('double' invalid)}} 135 // expected-error@+1{{invalid OpenACC clause 'clause'}} 136 #pragma acc wait(devnum:3:queues:i, j, 1+1, 3.3) clause-list 137 } 138