1 // RUN: %clang_cc1 -verify -fopenmp %s 2 3 // RUN: %clang_cc1 -verify -fopenmp-simd %s 4 5 void foo() { 6 } 7 8 template <class T, typename S, int N, int ST> 9 T tmain(T argc, S **argv) { 10 int i; 11 #pragma omp target parallel for simd defaultmap // expected-error {{expected '(' after 'defaultmap'}} 12 for (i = 0; i < argc; ++i) foo(); 13 #pragma omp target parallel for simd defaultmap ( // expected-error {{expected 'tofrom' in OpenMP clause 'defaultmap'}} expected-error {{expected ')'}} expected-note {{to match this '('}} 14 for (i = 0; i < argc; ++i) foo(); 15 #pragma omp target parallel for simd defaultmap () // expected-error {{expected 'tofrom' in OpenMP clause 'defaultmap'}} 16 for (i = 0; i < argc; ++i) foo(); 17 #pragma omp target parallel for simd defaultmap (tofrom // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-warning {{missing ':' after defaultmap modifier - ignoring}} expected-error {{expected 'scalar' in OpenMP clause 'defaultmap'}} 18 for (i = 0; i < argc; ++i) foo(); 19 #pragma omp target parallel for simd defaultmap (tofrom: // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{expected 'scalar' in OpenMP clause 'defaultmap'}} 20 for (i = 0; i < argc; ++i) foo(); 21 #pragma omp target parallel for simd defaultmap (tofrom) // expected-warning {{missing ':' after defaultmap modifier - ignoring}} expected-error {{expected 'scalar' in OpenMP clause 'defaultmap'}} 22 for (i = 0; i < argc; ++i) foo(); 23 #pragma omp target parallel for simd defaultmap (tofrom scalar) // expected-warning {{missing ':' after defaultmap modifier - ignoring}} 24 for (i = 0; i < argc; ++i) foo(); 25 #pragma omp target parallel for simd defaultmap (tofrom, // expected-error {{expected ')'}} expected-error {{expected 'scalar' in OpenMP clause 'defaultmap'}} expected-warning {{missing ':' after defaultmap modifier - ignoring}} expected-note {{to match this '('}} 26 for (i = 0; i < argc; ++i) foo(); 27 #pragma omp target parallel for simd defaultmap (scalar: // expected-error {{expected ')'}} expected-error {{expected 'tofrom' in OpenMP clause 'defaultmap'}} expected-note {{to match this '('}} 28 for (i = 0; i < argc; ++i) foo(); 29 #pragma omp target parallel for simd defaultmap (tofrom, scalar // expected-error {{expected ')'}} expected-warning {{missing ':' after defaultmap modifier - ignoring}} expected-error {{expected 'scalar' in OpenMP clause 'defaultmap'}} expected-note {{to match this '('}} 30 for (i = 0; i < argc; ++i) foo(); 31 32 return argc; 33 } 34 35 int main(int argc, char **argv) { 36 int i; 37 #pragma omp target parallel for simd defaultmap // expected-error {{expected '(' after 'defaultmap'}} 38 for (i = 0; i < argc; ++i) foo(); 39 #pragma omp target parallel for simd defaultmap ( // expected-error {{expected 'tofrom' in OpenMP clause 'defaultmap'}} expected-error {{expected ')'}} expected-note {{to match this '('}} 40 for (i = 0; i < argc; ++i) foo(); 41 #pragma omp target parallel for simd defaultmap () // expected-error {{expected 'tofrom' in OpenMP clause 'defaultmap'}} 42 for (i = 0; i < argc; ++i) foo(); 43 #pragma omp target parallel for simd defaultmap (tofrom // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-warning {{missing ':' after defaultmap modifier - ignoring}} expected-error {{expected 'scalar' in OpenMP clause 'defaultmap'}} 44 for (i = 0; i < argc; ++i) foo(); 45 #pragma omp target parallel for simd defaultmap (tofrom: // expected-error {{expected ')'}} expected-note {{to match this '('}} expected-error {{expected 'scalar' in OpenMP clause 'defaultmap'}} 46 for (i = 0; i < argc; ++i) foo(); 47 #pragma omp target parallel for simd defaultmap (tofrom) // expected-warning {{missing ':' after defaultmap modifier - ignoring}} expected-error {{expected 'scalar' in OpenMP clause 'defaultmap'}} 48 for (i = 0; i < argc; ++i) foo(); 49 #pragma omp target parallel for simd defaultmap (tofrom scalar) // expected-warning {{missing ':' after defaultmap modifier - ignoring}} 50 for (i = 0; i < argc; ++i) foo(); 51 #pragma omp target parallel for simd defaultmap (tofrom, // expected-error {{expected ')'}} expected-error {{expected 'scalar' in OpenMP clause 'defaultmap'}} expected-warning {{missing ':' after defaultmap modifier - ignoring}} expected-note {{to match this '('}} 52 for (i = 0; i < argc; ++i) foo(); 53 #pragma omp target parallel for simd defaultmap (scalar: // expected-error {{expected ')'}} expected-error {{expected 'tofrom' in OpenMP clause 'defaultmap'}} expected-note {{to match this '('}} 54 for (i = 0; i < argc; ++i) foo(); 55 #pragma omp target parallel for simd defaultmap (tofrom, scalar // expected-error {{expected ')'}} expected-warning {{missing ':' after defaultmap modifier - ignoring}} expected-error {{expected 'scalar' in OpenMP clause 'defaultmap'}} expected-note {{to match this '('}} 56 for (i = 0; i < argc; ++i) foo(); 57 58 return tmain<int, char, 1, 0>(argc, argv); 59 } 60 61