3 __attribute__((noinline
, noclone
)) void
6 int x
= 1, y
= 2, z
= 3;
10 #pragma omp task shared (x) depend(out: x)
12 #pragma omp task shared (x) depend(inout: x)
18 #pragma omp task shared (x) depend(inout: x)
24 #pragma omp task shared (z) depend(in: z)
27 #pragma omp task shared (z) depend(in: z)
30 #pragma omp task shared (z) depend(in: z)
33 #pragma omp task shared (z) depend(in: z)
36 #pragma omp task shared (z) depend(in: z)
39 #pragma omp task shared (z) depend(in: z)
42 #pragma omp task shared (y) depend(in: y)
45 #pragma omp task shared (y) depend(in: y)
48 #pragma omp task shared (y) depend(in: y)
51 #pragma omp task shared (y) depend(in: y)
54 #pragma omp task if (ifval) shared (x, y) depend(in: x) depend(inout: y)
62 /* The above if (0) task should have waited till all
63 the tasks with x and y dependencies finish. */
69 #pragma omp task shared (z) depend(inout: z)
75 #pragma omp task shared (z) depend(inout: z)
82 if (x
!= (ifval
? 4 : 5) || y
!= (ifval
? 3 : 4) || z
!= 5)
84 #pragma omp task if (ifval) shared (x, y) depend(in: x) depend(inout: y)
86 if (x
!= (ifval
? 4 : 5) || y
!= (ifval
? 3 : 4))