#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; | |
} |