7 int x
= 0, y
= 0, z
= 0, err
;
9 #pragma omp target map(to: shared_mem)
14 #pragma omp task depend(in: x)
19 #pragma omp task depend(in: x)
24 #pragma omp task depend(out: z)
29 #pragma omp target enter data map(to: x, y, z) depend(inout: x, z) nowait
30 #pragma omp task depend(inout: x, z)
34 #pragma omp target update to(x, y) depend(inout: x) nowait
35 #pragma omp target enter data map(always, to: z) depend(inout: z) nowait
36 #pragma omp target map (alloc: x, y, z) map (from: err) depend(inout: x, z)
38 err
= x
!= 2 || y
!= 3 || z
!= 4;
41 #pragma omp task depend(in: x)
47 #pragma omp task depend(in: x)
53 #pragma omp task depend(out: z)
59 #pragma omp target exit data map(release: z) depend(inout: z) nowait
60 #pragma omp target exit data map(from: x, y) depend(inout: x) nowait
61 #pragma omp target exit data map(from: z) depend(inout: z) nowait
63 if (err
|| x
!= 5 || y
!= 6 || z
!= 7)