blob: e893da4be3fa956f8debb7788e0551a3f097322e [file] [log] [blame]
Alexey Bataevc30dd2d2015-06-18 12:14:09 +00001// RUN: %clang_cc1 -verify -fopenmp %s
2
3int foo();
4
5int 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
51int 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}