]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - test/OpenMP/taskgroup_messages.cpp
Vendor import of clang trunk r338150:
[FreeBSD/FreeBSD.git] / test / OpenMP / taskgroup_messages.cpp
1 // RUN: %clang_cc1 -verify -fopenmp %s
2
3 // RUN: %clang_cc1 -verify -fopenmp-simd %s
4
5 int foo();
6
7 int main() {
8   #pragma omp taskgroup
9   ;
10   #pragma omp taskgroup unknown // expected-warning {{extra tokens at the end of '#pragma omp taskgroup' are ignored}}
11   foo();
12   {
13     #pragma omp taskgroup
14   } // expected-error {{expected statement}}
15   #pragma omp taskgroup
16   #pragma omp taskgroup
17   for (int i = 0; i < 10; ++i) {
18     foo();
19     #pragma omp parallel
20     #pragma omp for
21     for (int j = 0; j < 10; j++) {
22       foo();
23       #pragma omp taskgroup
24       foo();
25     }
26   }
27   #pragma omp taskgroup
28   #pragma omp taskgroup
29   for (int i = 0; i < 10; ++i) {
30     foo();
31     #pragma omp parallel
32     #pragma omp for
33     for (int j = 0; j < 10; j++) {
34       #pragma omp taskgroup
35       foo();
36     }
37   }
38   #pragma omp taskgroup
39   #pragma omp taskgroup
40   for (int i = 0; i < 10; ++i) {
41     foo();
42     #pragma omp parallel
43     #pragma omp for
44     for (int j = 0; j < 10; j++) {
45       #pragma omp taskgroup
46       foo();
47     }
48   }
49
50   return 0;
51 }
52
53 int foo() {
54   L1:
55     foo();
56   #pragma omp taskgroup
57   {
58     foo();
59     goto L1; // expected-error {{use of undeclared label 'L1'}}
60   }
61   goto L2; // expected-error {{use of undeclared label 'L2'}}
62   #pragma omp taskgroup
63   {
64     L2:
65     foo();
66   }
67
68 #pragma omp taskgroup init // expected-warning {{extra tokens at the end of '#pragma omp taskgroup' are ignored}}
69   ;
70   return 0;
71 }