2006-12-15 H.J. Lu <hongjiu.lu@intel.com>
[official-gcc.git] / gcc / testsuite / gcc.target / i386 / pr25654.c
blobafb2ff6d2a4491ac22e300fe5b080f73e23a03cd
1 /* { dg-do run { target ilp32 } } */
2 /* { dg-options "-O2 -mpreferred-stack-boundary=2 -march=i686 -frename-registers" } */
4 extern void abort (void) __attribute__((noreturn));
6 struct wrapper {
7 union setconflict
9 short a[20];
10 int b[10];
11 } a;
14 int
15 main ()
17 int sum = 0;
19 struct wrapper a;
20 short *c;
21 c = a.a.a;
22 asm ("": "=r" (c):"0" (c));
23 *c = 0;
24 asm ("": "=r" (c):"0" (c));
25 sum += *c;
28 struct wrapper a;
29 int *c;
30 c = a.a.b;
31 asm ("": "=r" (c):"0" (c));
32 *c = 1;
33 asm ("": "=r" (c):"0" (c));
34 sum += *c;
37 if (sum != 1)
38 abort();
39 return 0;