| // PR target/59163 | |
| // { dg-do run } | |
| struct A { float a[4]; }; | |
| struct B { int b; A a; }; | |
| __attribute__((noinline, noclone)) void | |
| bar (A &a) | |
| { | |
| if (a.a[0] != 36.0f || a.a[1] != 42.0f || a.a[2] != 48.0f || a.a[3] != 54.0f) | |
| __builtin_abort (); | |
| } | |
| __attribute__((noinline, noclone)) void | |
| foo (A &a) | |
| { | |
| int i; | |
| A c = a; | |
| for (i = 0; i < 4; i++) | |
| c.a[i] *= 6.0f; | |
| a = c; | |
| bar (a); | |
| } | |
| int | |
| main () | |
| { | |
| B b = { 5, { 6, 7, 8, 9 } }; | |
| foo (b.a); | |
| } |