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