// RUN: %clang_cc1 %s -verify -fopenacc

void func() {
  int i, j;

  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait

  // expected-error@+2{{invalid OpenACC clause 'clause'}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait clause-list

  // expected-error@+3{{expected ')'}}
  // expected-note@+2{{to match this '('}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait (

  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait ()

  // expected-error@+2{{invalid OpenACC clause 'clause'}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait () clause-list

  // expected-error@+4{{expected expression}}
  // expected-error@+3{{expected ')'}}
  // expected-note@+2{{to match this '('}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait (devnum:

  // expected-error@+2{{expected expression}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait (devnum:)

  // expected-error@+3{{expected expression}}
  // expected-error@+2{{invalid OpenACC clause 'clause'}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait (devnum:) clause-list

  // expected-error@+4{{expected ':'}}
  // expected-error@+3{{expected ')'}}
  // expected-note@+2{{to match this '('}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait (devnum: i + j

  // expected-error@+2{{expected ':'}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait (devnum: i + j)

  // expected-error@+3{{expected ':'}}
  // expected-error@+2{{invalid OpenACC clause 'clause'}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait (devnum: i + j) clause-list

  // expected-error@+3{{expected ')'}}
  // expected-note@+2{{to match this '('}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait (queues:

  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait (queues:)

  // expected-error@+2{{invalid OpenACC clause 'clause'}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait (queues:) clause-list

  // expected-error@+3{{expected ')'}}
  // expected-note@+2{{to match this '('}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait (devnum: i + j:queues:

  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait (devnum: i + j:queues:)

  // expected-error@+2{{invalid OpenACC clause 'clause'}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait (devnum: i + j:queues:) clause-list

  // expected-error@+4{{use of undeclared identifier 'devnum'}}
  // expected-error@+3{{expected ')'}}
  // expected-note@+2{{to match this '('}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait (queues:devnum: i + j

  // expected-error@+2{{use of undeclared identifier 'devnum'}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait (queues:devnum: i + j)

  // expected-error@+3{{use of undeclared identifier 'devnum'}}
  // expected-error@+2{{invalid OpenACC clause 'clause'}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait (queues:devnum: i + j) clause-list

  // expected-error@+3{{expected ')'}}
  // expected-note@+2{{to match this '('}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait(i, j, 1+1, 3.3

  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait(i, j, 1+1, 3.3)
  // expected-error@+2{{invalid OpenACC clause 'clause'}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait(i, j, 1+1, 3.3) clause-list

  // expected-error@+4{{expected expression}}
  // expected-error@+3{{expected ')'}}
  // expected-note@+2{{to match this '('}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait(,

  // expected-error@+2{{expected expression}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait(,)

  // expected-error@+3{{expected expression}}
  // expected-error@+2{{invalid OpenACC clause 'clause'}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait(,) clause-list

  // expected-error@+3{{expected ')'}}
  // expected-note@+2{{to match this '('}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait(queues:i, j, 1+1, 3.3

  // expected-error@+4{{expected expression}}
  // expected-error@+3{{expected ')'}}
  // expected-note@+2{{to match this '('}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait(queues:i, j, 1+1, 3.3,

  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait(queues:i, j, 1+1, 3.3)

  // expected-error@+2{{invalid OpenACC clause 'clause'}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait(queues:i, j, 1+1, 3.3) clause-list

  // expected-error@+3{{expected ')'}}
  // expected-note@+2{{to match this '('}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait(devnum:3:i, j, 1+1, 3.3
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait(devnum:3:i, j, 1+1, 3.3)
  // expected-error@+2{{invalid OpenACC clause 'clause'}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait(devnum:3:i, j, 1+1, 3.3) clause-list

  // expected-error@+3{{expected ')'}}
  // expected-note@+2{{to match this '('}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait(devnum:3:queues:i, j, 1+1, 3.3
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait(devnum:3:queues:i, j, 1+1, 3.3)
  // expected-error@+2{{invalid OpenACC clause 'clause'}}
  // expected-warning@+1{{OpenACC directives not yet implemented, pragma ignored}}
  #pragma acc wait(devnum:3:queues:i, j, 1+1, 3.3) clause-list
}
