blob: 3d1519ee70a559efe78d59d597f86be02b77c712 [file] [log] [blame]
#ifdef __cplusplus
extern "C"
#endif
void abort (void);
int
main ()
{
int a[64], b = 1;
#pragma omp parallel num_threads (4)
#pragma omp single
{
int i;
#pragma omp taskwait depend(in: a) nowait
#pragma omp taskwait depend(in: a) nowait
#pragma omp taskwait
#pragma omp taskgroup
{
#pragma omp taskwait depend(in: a) nowait
#pragma omp taskwait depend(in: a) nowait
}
for (i = 0; i < 64; ++i)
#pragma omp task depend(in: a) shared(a)
a[i] = i;
#pragma omp taskwait depend(inout: a) nowait
for (i = 0; i < 64; ++i)
#pragma omp task depend(inoutset: a) shared(a)
if (a[i] != i)
abort ();
else
a[i] = 2 * i + 1;
#pragma omp taskwait nowait depend(out: a) depend(in: b)
#pragma omp taskwait depend(inout: b)
for (i = 0; i < 64; ++i)
if (a[i] != 2 * i + 1)
abort ();
}
return 0;
}