1 /* { dg-do run } */
2
3 #include <omp.h>
4 #include <stdlib.h>
5
6 int a;
7
8 int
9 main ()
10 {
11 #pragma omp task
12 {
13 if (!omp_in_explicit_task ())
14 abort ();
15 #pragma omp task
16 {
17 if (!omp_in_explicit_task ())
18 abort ();
19 #pragma omp taskgroup task_reduction (+: a)
20 {
21 if (!omp_in_explicit_task ())
22 abort ();
23 #pragma omp task in_reduction (+: a)
24 {
25 ++a;
26 if (!omp_in_explicit_task ())
27 abort ();
28 }
29 }
30 if (!omp_in_explicit_task ())
31 abort ();
32 #pragma omp taskwait
33 }
34 }
35 return 0;
36 }