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