Merged trunk at revision 161680 into branch.
[official-gcc.git] / gcc / testsuite / gcc.c-torture / execute / pr44575.c
blob62a7d7800b0f85f2be8451116c5dda76286f16b9
1 /* PR target/44575 */
3 #include <stdarg.h>
5 int fails = 0;
6 struct S { float a[3]; };
7 struct S a[5];
9 void
10 check (int z, ...)
12 struct S arg, *p;
13 va_list ap;
14 int j = 0, k = 0;
15 int i;
16 va_start (ap, z);
17 for (i = 2; i < 4; ++i)
19 p = 0;
20 j++;
21 k += 2;
22 switch ((z << 4) | i)
24 case 0x12:
25 case 0x13:
26 p = &a[2];
27 arg = va_arg (ap, struct S);
28 break;
29 default:
30 ++fails;
31 break;
33 if (p && p->a[2] != arg.a[2])
34 ++fails;
35 if (fails)
36 break;
38 va_end (ap);
41 int
42 main ()
44 a[2].a[2] = -49026;
45 check (1, a[2], a[2]);
46 if (fails)
47 abort ();
48 return 0;