1234567891011121314151617181920212223242526272829 |
- /* PR middle-end/80809 */
- /* { dg-do run } */
- __attribute__((noinline, noclone)) void
- foo (int x)
- {
- int i, j, v[x], *w[16];
- for (i = 0; i < x; i++)
- v[i] = i;
- #pragma omp parallel
- #pragma omp single
- for (i = 0; i < 16; i++)
- /* Make sure v is implicitly determined shared in task, because it
- is shared on the parallel. */
- #pragma omp task private (j)
- w[i] = v;
- for (i = 0; i < 16; i++)
- if (w[i] != v)
- __builtin_abort ();
- }
- int
- main ()
- {
- foo (4);
- foo (27);
- foo (196);
- return 0;
- }
|