1// RUN: %clang_cc1 -verify -fopenmp=libiomp5 -ferror-limit 100 -o - %s
2
3void foo();
4
5int main(int argc, char **argv) {
6  int i;
7#pragma omp parallel for proc_bind // expected-error {{expected '(' after 'proc_bind'}}
8  for (i = 0; i < argc; ++i)
9    foo();
10#pragma omp parallel for proc_bind( // expected-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}} expected-error {{expected ')'}} expected-note {{to match this '('}}
11  for (i = 0; i < argc; ++i)
12    foo();
13#pragma omp parallel for proc_bind() // expected-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}}
14  for (i = 0; i < argc; ++i)
15    foo();
16#pragma omp parallel for proc_bind(master // expected-error {{expected ')'}} expected-note {{to match this '('}}
17  for (i = 0; i < argc; ++i)
18    foo();
19#pragma omp parallel for proc_bind(close), proc_bind(spread) // expected-error {{directive '#pragma omp parallel for' cannot contain more than one 'proc_bind' clause}}
20  for (i = 0; i < argc; ++i)
21    foo();
22#pragma omp parallel for proc_bind(x) // expected-error {{expected 'master', 'close' or 'spread' in OpenMP clause 'proc_bind'}}
23  for (i = 0; i < argc; ++i)
24    foo();
25
26#pragma omp parallel for proc_bind(master)
27  for (i = 0; i < argc; ++i)
28    foo();
29
30#pragma omp parallel proc_bind(close)
31#pragma omp parallel for proc_bind(spread)
32  for (i = 0; i < argc; ++i)
33    foo();
34  return 0;
35}
36