// RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 -o - %s

void foo();

int main(int argc, char **argv) {
#pragma omp parallel sections proc_bind // expected-error {{expected '(' after 'proc_bind'}}
  { foo(); }
#pragma omp parallel sections proc_bind( // expected-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}} expected-error {{expected ')'}} expected-note {{to match this '('}}
  { foo(); }
#pragma omp parallel sections proc_bind() // expected-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}}
  { foo(); }
#pragma omp parallel sections proc_bind(master // expected-error {{expected ')'}} expected-note {{to match this '('}}
  { foo(); }
#pragma omp parallel sections proc_bind(close), proc_bind(spread) // expected-error {{directive '#pragma omp parallel sections' cannot contain more than one 'proc_bind' clause}}
  { foo(); }
#pragma omp parallel sections proc_bind(x) // expected-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}}
  { foo(); }

#pragma omp parallel sections proc_bind(master)
  { ++argc; }

#pragma omp parallel sections proc_bind(close)
  {
#pragma omp parallel sections proc_bind(spread)
    { ++argc; }
  }
  return 0;
}
