1 // RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 -o - %s
3 // RUN: %clang_cc1 -verify -fopenmp-simd -ferror-limit 100 -o - %s
7 template <class T, int N>
12 #pragma omp distribute parallel for simd default // expected-error {{expected '(' after 'default'}}
13 for (i = 0; i < argc; ++i)
17 #pragma omp distribute parallel for simd default( // expected-error {{expected 'none' or 'shared' in OpenMP clause 'default'}} expected-error {{expected ')'}} expected-note {{to match this '('}}
18 for (i = 0; i < argc; ++i)
22 #pragma omp distribute parallel for simd default() // expected-error {{expected 'none' or 'shared' in OpenMP clause 'default'}}
23 for (i = 0; i < argc; ++i)
27 #pragma omp distribute parallel for simd default(none // expected-error {{expected ')'}} expected-note {{to match this '('}}
28 for (i = 0; i < argc; ++i) // expected-error 2 {{variable 'argc' must have explicitly specified data sharing attributes}}
32 #pragma omp distribute parallel for simd default(shared), default(shared) // expected-error {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'default' clause}}
33 for (i = 0; i < argc; ++i)
37 #pragma omp distribute parallel for simd default(x) // expected-error {{expected 'none' or 'shared' in OpenMP clause 'default'}}
38 for (i = 0; i < argc; ++i)
42 #pragma omp distribute parallel for simd default(none)
43 for (i = 0; i < argc; ++i) // expected-error 2 {{variable 'argc' must have explicitly specified data sharing attributes}}
46 #pragma omp parallel default(none)
49 #pragma omp distribute parallel for simd default(shared)
50 for (i = 0; i < argc; ++i)
56 int main(int argc, char **argv) {
60 #pragma omp distribute parallel for simd default // expected-error {{expected '(' after 'default'}}
61 for (i = 0; i < argc; ++i)
65 #pragma omp distribute parallel for simd default( // expected-error {{expected 'none' or 'shared' in OpenMP clause 'default'}} expected-error {{expected ')'}} expected-note {{to match this '('}}
66 for (i = 0; i < argc; ++i)
70 #pragma omp distribute parallel for simd default() // expected-error {{expected 'none' or 'shared' in OpenMP clause 'default'}}
71 for (i = 0; i < argc; ++i)
75 #pragma omp distribute parallel for simd default(none // expected-error {{expected ')'}} expected-note {{to match this '('}}
76 for (i = 0; i < argc; ++i) // expected-error {{variable 'argc' must have explicitly specified data sharing attributes}}
80 #pragma omp distribute parallel for simd default(shared), default(shared) // expected-error {{directive '#pragma omp distribute parallel for simd' cannot contain more than one 'default' clause}}
81 for (i = 0; i < argc; ++i)
85 #pragma omp distribute parallel for simd default(x) // expected-error {{expected 'none' or 'shared' in OpenMP clause 'default'}}
86 for (i = 0; i < argc; ++i)
90 #pragma omp distribute parallel for simd default(none)
91 for (i = 0; i < argc; ++i) // expected-error {{variable 'argc' must have explicitly specified data sharing attributes}}
94 #pragma omp parallel default(none)
97 #pragma omp distribute parallel for simd default(shared)
98 for (i = 0; i < argc; ++i)
101 return (tmain<int, 5>(argc) + tmain<char, 1>(argv[0][0])); // expected-note {{in instantiation of function template specialization 'tmain<int, 5>' requested here}} expected-note {{in instantiation of function template specialization 'tmain<char, 1>' requested here}}