/* { dg-do run } */ | |
extern void abort (void) __attribute__((noreturn)); | |
union setconflict | |
{ | |
int a[20]; | |
long b[10]; | |
}; | |
int | |
main () | |
{ | |
int sum = 0; | |
{ | |
union setconflict a; | |
int *c; | |
c = a.a; | |
asm ("": "=r" (c):"0" (c)); | |
*c = 0; | |
asm ("": "=r" (c):"0" (c)); | |
sum += *c; | |
} | |
{ | |
union setconflict a; | |
long *c; | |
c = a.b; | |
asm ("": "=r" (c):"0" (c)); | |
*c = 1; | |
asm ("": "=r" (c):"0" (c)); | |
sum += *c; | |
} | |
if (sum != 1) | |
abort(); | |
return 0; | |
} |