// 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); | |
} |