2018-11-07 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / testsuite / g++.dg / torture / pr59163.C
blob2f9a99970781b862f5a10303b16b8fac0e7cf195
1 // PR target/59163
2 // { dg-do run }
4 struct A { float a[4]; };
5 struct B { int b; A a; };
7 __attribute__((noinline, noclone)) void
8 bar (A &a)
10   if (a.a[0] != 36.0f || a.a[1] != 42.0f || a.a[2] != 48.0f || a.a[3] != 54.0f)
11     __builtin_abort ();
14 __attribute__((noinline, noclone)) void
15 foo (A &a)
17   int i;
18   A c = a;
19   for (i = 0; i < 4; i++)
20     c.a[i] *= 6.0f;
21   a = c;
22   bar (a);
25 int
26 main ()
28   B b = { 5, { 6, 7, 8, 9 } };
29   foo (b.a);