1// { dg-do run } 2 3extern "C" void abort(void); 4#define N 1000 5 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 23int main() 24{ 25 if (foo() != N) 26 abort (); 27 return 0; 28} 29