#ifdef __cplusplus extern "C" #endif void abort (void); int main () { int a, b, c, d; #pragma omp parallel num_threads (4) #pragma omp single { #pragma omp task depend(out : a) a = 6; #pragma omp task depend(out : b) b = 7; #pragma omp task depend(out : c) c = 8; #pragma omp taskwait depend(in : a, c) d = a + c; #pragma omp task depend(out : a) a = 9; #pragma omp task depend(out : c) c = 10; } if (a != 9 || b != 7 || c != 10 || d != 6 + 8) abort (); return 0; }