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