1 // { dg-do run } 2 3 #include <string.h> 4 #include <stdlib.h> 5 6 int main()7main () 8 { 9 int i, j, k, l = 0; 10 int a[3][3][3]; 11 12 memset (a, '\0', sizeof (a)); 13 #pragma omp parallel for collapse(4 - 1) schedule(static, 4) 14 for (i = 0; i < 2; i++) 15 for (j = 0; j < 2; j++) 16 for (k = 0; k < 2; k++) 17 a[i][j][k] = i + j * 4 + k * 16; 18 #pragma omp parallel 19 { 20 #pragma omp for collapse(2) reduction(|:l) private (k) 21 for (i = 0; i < 2; i++) 22 for (j = 0; j < 2; j++) 23 for (k = 0; k < 2; k++) 24 if (a[i][j][k] != i + j * 4 + k * 16) 25 l = 1; 26 } 27 if (l) 28 abort (); 29 } 30