1ef8225444452a1486bd721f3285301fe84643b00Stephen Hines// RUN: %clang_cc1 -verify -fopenmp=libiomp5 -ferror-limit 100 -o - %s
2ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
3ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesvoid foo();
4ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
5ef8225444452a1486bd721f3285301fe84643b00Stephen Hinesint main(int argc, char **argv) {
6ef8225444452a1486bd721f3285301fe84643b00Stephen Hines#pragma omp parallel sections default // expected-error {{expected '(' after 'default'}}
7ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  {
8ef8225444452a1486bd721f3285301fe84643b00Stephen Hines#pragma omp parallel sections default( // expected-error {{expected 'none' or 'shared' in OpenMP clause 'default'}} expected-error {{expected ')'}} expected-note {{to match this '('}}
9ef8225444452a1486bd721f3285301fe84643b00Stephen Hines    {
10ef8225444452a1486bd721f3285301fe84643b00Stephen Hines#pragma omp parallel sections default() // expected-error {{expected 'none' or 'shared' in OpenMP clause 'default'}}
11ef8225444452a1486bd721f3285301fe84643b00Stephen Hines      {
12ef8225444452a1486bd721f3285301fe84643b00Stephen Hines#pragma omp parallel sections default(none // expected-error {{expected ')'}} expected-note {{to match this '('}}
13ef8225444452a1486bd721f3285301fe84643b00Stephen Hines        {
14ef8225444452a1486bd721f3285301fe84643b00Stephen Hines#pragma omp parallel sections default(shared), default(shared) // expected-error {{directive '#pragma omp parallel sections' cannot contain more than one 'default' clause}}
15ef8225444452a1486bd721f3285301fe84643b00Stephen Hines          {
16ef8225444452a1486bd721f3285301fe84643b00Stephen Hines#pragma omp parallel sections default(x) // expected-error {{expected 'none' or 'shared' in OpenMP clause 'default'}}
17ef8225444452a1486bd721f3285301fe84643b00Stephen Hines            {
18ef8225444452a1486bd721f3285301fe84643b00Stephen Hines              foo();
19ef8225444452a1486bd721f3285301fe84643b00Stephen Hines            }
20ef8225444452a1486bd721f3285301fe84643b00Stephen Hines          }
21ef8225444452a1486bd721f3285301fe84643b00Stephen Hines        }
22ef8225444452a1486bd721f3285301fe84643b00Stephen Hines      }
23ef8225444452a1486bd721f3285301fe84643b00Stephen Hines    }
24ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  }
25ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
26ef8225444452a1486bd721f3285301fe84643b00Stephen Hines#pragma omp parallel sections default(none)
27ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  {
28ef8225444452a1486bd721f3285301fe84643b00Stephen Hines    ++argc; // expected-error {{variable 'argc' must have explicitly specified data sharing attributes}}
29ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  }
30ef8225444452a1486bd721f3285301fe84643b00Stephen Hines
31ef8225444452a1486bd721f3285301fe84643b00Stephen Hines#pragma omp parallel sections default(none)
32ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  {
33ef8225444452a1486bd721f3285301fe84643b00Stephen Hines#pragma omp parallel sections default(shared)
34ef8225444452a1486bd721f3285301fe84643b00Stephen Hines    {
35ef8225444452a1486bd721f3285301fe84643b00Stephen Hines      ++argc;
36ef8225444452a1486bd721f3285301fe84643b00Stephen Hines    }
37ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  }
38ef8225444452a1486bd721f3285301fe84643b00Stephen Hines  return 0;
39ef8225444452a1486bd721f3285301fe84643b00Stephen Hines}
40