// { dg-do run } | |
extern void abort(void); | |
#define N 1000 | |
int foo() | |
{ | |
int i = 0, j; | |
#pragma omp parallel for num_threads(2) shared (i) | |
for (j = 0; j < N; ++j) | |
{ | |
#pragma omp parallel num_threads(1) shared (i) | |
{ | |
#pragma omp atomic | |
i++; | |
} | |
} | |
return i; | |
} | |
int main() | |
{ | |
if (foo() != N) | |
abort (); | |
return 0; | |
} |