1/* PR middle-end/56883 */
2/* { dg-do compile }
3/* { dg-options "-O2 -fopenmp" } */
4
5void
6f1 (int ***x)
7{
8  int i, j, k;
9#pragma omp parallel for
10  for (i = 0; i < 10; ++i)
11    {
12    #pragma omp parallel shared(j)
13      #pragma omp for
14	for (j = 0; j < 10; ++j)
15	  {
16	  #pragma omp parallel for
17	      for (k = 0; k < 10; ++k)
18		x[i][j][k] = k;
19	  }
20    }
21}
22
23void
24f2 (int ***x)
25{
26  int i, j, k;
27#pragma omp parallel for schedule(static,1)
28  for (i = 0; i < 10; ++i)
29    {
30    #pragma omp parallel shared(j)
31      #pragma omp for schedule(static,1)
32	for (j = 0; j < 10; ++j)
33	  {
34	  #pragma omp parallel for schedule(static,1)
35	      for (k = 0; k < 10; ++k)
36		x[i][j][k] = k;
37	  }
38    }
39}
40
41void
42f3 (int ***x)
43{
44  int i, j, k;
45#pragma omp parallel for schedule(runtime)
46  for (i = 0; i < 10; ++i)
47    {
48    #pragma omp parallel shared(j)
49      #pragma omp for schedule(runtime)
50	for (j = 0; j < 10; ++j)
51	  {
52	  #pragma omp parallel for schedule(runtime)
53	      for (k = 0; k < 10; ++k)
54		x[i][j][k] = k;
55	  }
56    }
57}
58