1 /* PR middle-end/80809 */ 2 /* { dg-do run } */ 3 4 __attribute__((noinline, noclone)) void foo(int x)5foo (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()23main () 24 { 25 foo (4); 26 foo (27); 27 foo (196); 28 return 0; 29 } 30