1 /* PR middle-end/80809 */
2 /* { dg-do run } */
3 
4 __attribute__((noinline, noclone)) void
foo(int x)5 foo (int x)
6 {
7   int i, j, v[x], *w[16];
8   for (i = 0; i < x; i++)
9     v[i] = i;
10 #pragma omp parallel
11 #pragma omp single
12   for (i = 0; i < 16; i++)
13   /* Make sure v is implicitly determined shared in task, because it
14      is shared on the parallel.  */
15 #pragma omp task private (j)
16     w[i] = v;
17   for (i = 0; i < 16; i++)
18     if (w[i] != v)
19       __builtin_abort ();
20 }
21 
22 int
main()23 main ()
24 {
25   foo (4);
26   foo (27);
27   foo (196);
28   return 0;
29 }
30