diff options
Diffstat (limited to 'gcc-4.9/gcc/testsuite/g++.dg/gomp/pr60682.C')
-rw-r--r-- | gcc-4.9/gcc/testsuite/g++.dg/gomp/pr60682.C | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/gcc-4.9/gcc/testsuite/g++.dg/gomp/pr60682.C b/gcc-4.9/gcc/testsuite/g++.dg/gomp/pr60682.C new file mode 100644 index 000000000..fdd7a204c --- /dev/null +++ b/gcc-4.9/gcc/testsuite/g++.dg/gomp/pr60682.C @@ -0,0 +1,44 @@ +// PR middle-end/60682 +// { dg-do compile } +// { dg-options "-O2 -fopenmp-simd" } + +struct A +{ + float a; + A () {} + A (const A &x) { a = x.a; } +}; + +struct B +{ + A a[16]; +}; + +struct C +{ + float a[1]; + C () {} + C (const C &x) { a[0] = x.a[0]; } +}; + +struct D +{ + C a[16]; +}; + +void +foo (int x, B &y, D &z) +{ +#pragma omp simd + for (int i = 0; i < x; ++i) + { + A a; + y.a[i] = a; + } +#pragma omp simd + for (int i = 0; i < x; ++i) + { + C a; + z.a[i] = a; + } +} |