Daily bump.
[official-gcc.git] / libgomp / testsuite / libgomp.c / pr80809-3.c
blob7e0d17983e4de661b5474bdc3c5bcd1ceab08911
1 /* PR middle-end/80809 */
2 /* { dg-do run } */
4 __attribute__((noinline, noclone)) void
5 foo (int x)
7 int i, v[x], w[16];
8 for (i = 0; i < x; i++)
9 v[i] = i;
10 for (i = 0; i < 16; i++)
11 w[i] = 0;
12 #pragma omp parallel
13 #pragma omp single
15 int z[x];
16 for (i = 0; i < x; i++)
17 z[0] = 0;
18 for (i = 0; i < 16; i++)
19 #pragma omp task firstprivate (z) firstprivate (v)
21 int j;
22 for (j = 0; j < x; j++)
23 z[j] = i;
24 for (j = 0; j < x; j++)
25 v[j] += z[j];
26 for (j = 0; j < x; j++)
27 w[i] += v[j];
30 for (i = 0; i < 16; i++)
31 if (w[i] != (x - 1) * x / 2 + x * i)
32 __builtin_abort ();
35 int
36 main ()
38 foo (4);
39 foo (27);
40 foo (196);
41 return 0;