Home | History | Annotate | Download | only in OpenMP
      1 // RUN: %clang_cc1 -verify -fopenmp %s
      2 
      3 int foo();
      4 
      5 int main() {
      6   #pragma omp taskgroup
      7   ;
      8   #pragma omp taskgroup unknown // expected-warning {{extra tokens at the end of '#pragma omp taskgroup' are ignored}}
      9   foo();
     10   {
     11     #pragma omp taskgroup
     12   } // expected-error {{expected statement}}
     13   #pragma omp taskgroup
     14   #pragma omp taskgroup
     15   for (int i = 0; i < 10; ++i) {
     16     foo();
     17     #pragma omp parallel
     18     #pragma omp for
     19     for (int j = 0; j < 10; j++) {
     20       foo();
     21       #pragma omp taskgroup
     22       foo();
     23     }
     24   }
     25   #pragma omp taskgroup
     26   #pragma omp taskgroup
     27   for (int i = 0; i < 10; ++i) {
     28     foo();
     29     #pragma omp parallel
     30     #pragma omp for
     31     for (int j = 0; j < 10; j++) {
     32       #pragma omp taskgroup
     33       foo();
     34     }
     35   }
     36   #pragma omp taskgroup
     37   #pragma omp taskgroup
     38   for (int i = 0; i < 10; ++i) {
     39     foo();
     40     #pragma omp parallel
     41     #pragma omp for
     42     for (int j = 0; j < 10; j++) {
     43       #pragma omp taskgroup
     44       foo();
     45     }
     46   }
     47 
     48   return 0;
     49 }
     50 
     51 int foo() {
     52   L1:
     53     foo();
     54   #pragma omp taskgroup
     55   {
     56     foo();
     57     goto L1; // expected-error {{use of undeclared label 'L1'}}
     58   }
     59   goto L2; // expected-error {{use of undeclared label 'L2'}}
     60   #pragma omp taskgroup
     61   {
     62     L2:
     63     foo();
     64   }
     65 
     66   return 0;
     67 }
     68