1 /* { dg-do run } */ 2 3 extern void abort (void) __attribute__((noreturn)); 4 5 union setconflict 6 { 7 int a[20]; 8 long b[10]; 9 }; 10 11 int main()12main () 13 { 14 int sum = 0; 15 { 16 union setconflict a; 17 int *c; 18 c = a.a; 19 asm ("": "=r" (c):"0" (c)); 20 *c = 0; 21 asm ("": "=r" (c):"0" (c)); 22 sum += *c; 23 } 24 { 25 union setconflict a; 26 long *c; 27 c = a.b; 28 asm ("": "=r" (c):"0" (c)); 29 *c = 1; 30 asm ("": "=r" (c):"0" (c)); 31 sum += *c; 32 } 33 34 if (sum != 1) 35 abort(); 36 return 0; 37 } 38