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