1// RUN: %clang_cc1 -verify -fopenmp -ferror-limit 100 -o - %s 2 3void foo(); 4 5template <class T, int N> 6T tmain(T argc) { 7 int i; 8#pragma omp target 9#pragma omp teams 10#pragma omp distribute parallel for simd default // expected-error {{expected '(' after 'default'}} 11 for (i = 0; i < argc; ++i) 12 foo(); 13#pragma omp target 14#pragma omp teams 15#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 '('}} 16 for (i = 0; i < argc; ++i) 17 foo(); 18#pragma omp target 19#pragma omp teams 20#pragma omp distribute parallel for simd default() // expected-error {{expected 'none' or 'shared' in OpenMP clause 'default'}} 21 for (i = 0; i < argc; ++i) 22 foo(); 23#pragma omp target 24#pragma omp teams 25#pragma omp distribute parallel for simd default(none // expected-error {{expected ')'}} expected-note {{to match this '('}} 26 for (i = 0; i < argc; ++i) // expected-error 2 {{variable 'argc' must have explicitly specified data sharing attributes}} 27 foo(); 28#pragma omp target 29#pragma omp teams 30#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}} 31 for (i = 0; i < argc; ++i) 32 foo(); 33#pragma omp target 34#pragma omp teams 35#pragma omp distribute parallel for simd default(x) // expected-error {{expected 'none' or 'shared' in OpenMP clause 'default'}} 36 for (i = 0; i < argc; ++i) 37 foo(); 38#pragma omp target 39#pragma omp teams 40#pragma omp distribute parallel for simd default(none) 41 for (i = 0; i < argc; ++i) // expected-error 2 {{variable 'argc' must have explicitly specified data sharing attributes}} 42 foo(); 43 44#pragma omp parallel default(none) 45#pragma omp target 46#pragma omp teams 47#pragma omp distribute parallel for simd default(shared) 48 for (i = 0; i < argc; ++i) 49 foo(); 50 51 return T(); 52} 53 54int main(int argc, char **argv) { 55 int i; 56#pragma omp target 57#pragma omp teams 58#pragma omp distribute parallel for simd default // expected-error {{expected '(' after 'default'}} 59 for (i = 0; i < argc; ++i) 60 foo(); 61#pragma omp target 62#pragma omp teams 63#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 '('}} 64 for (i = 0; i < argc; ++i) 65 foo(); 66#pragma omp target 67#pragma omp teams 68#pragma omp distribute parallel for simd default() // expected-error {{expected 'none' or 'shared' in OpenMP clause 'default'}} 69 for (i = 0; i < argc; ++i) 70 foo(); 71#pragma omp target 72#pragma omp teams 73#pragma omp distribute parallel for simd default(none // expected-error {{expected ')'}} expected-note {{to match this '('}} 74 for (i = 0; i < argc; ++i) // expected-error {{variable 'argc' must have explicitly specified data sharing attributes}} 75 foo(); 76#pragma omp target 77#pragma omp teams 78#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}} 79 for (i = 0; i < argc; ++i) 80 foo(); 81#pragma omp target 82#pragma omp teams 83#pragma omp distribute parallel for simd default(x) // expected-error {{expected 'none' or 'shared' in OpenMP clause 'default'}} 84 for (i = 0; i < argc; ++i) 85 foo(); 86#pragma omp target 87#pragma omp teams 88#pragma omp distribute parallel for simd default(none) 89 for (i = 0; i < argc; ++i) // expected-error {{variable 'argc' must have explicitly specified data sharing attributes}} 90 foo(); 91 92#pragma omp parallel default(none) 93#pragma omp target 94#pragma omp teams 95#pragma omp distribute parallel for simd default(shared) 96 for (i = 0; i < argc; ++i) 97 foo(); 98 99 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}} 100} 101