1 // { dg-do run } 2 3 extern void abort(void); 4 #define N 1000 5 foo()6int foo() 7 { 8 int i = 0, j; 9 10 #pragma omp parallel for num_threads(2) shared (i) 11 for (j = 0; j < N; ++j) 12 { 13 #pragma omp parallel num_threads(1) shared (i) 14 { 15 #pragma omp atomic 16 i++; 17 } 18 } 19 20 return i; 21 } 22 main()23int main() 24 { 25 if (foo() != N) 26 abort (); 27 return 0; 28 } 29