1 /* PR tree-optimization/86492 */ 2 3 union U 4 { 5 unsigned int r; 6 struct S 7 { 8 unsigned int a:12; 9 unsigned int b:4; 10 unsigned int c:16; 11 } f; 12 }; 13 14 __attribute__((noipa)) unsigned int foo(unsigned int x)15foo (unsigned int x) 16 { 17 union U u; 18 u.r = 0; 19 u.f.c = x; 20 u.f.b = 0xe; 21 return u.r; 22 } 23 24 int main()25main () 26 { 27 union U u; 28 if (__CHAR_BIT__ * __SIZEOF_INT__ != 32 || sizeof (u.r) != sizeof (u.f)) 29 return 0; 30 u.r = foo (0x72); 31 if (u.f.a != 0 || u.f.b != 0xe || u.f.c != 0x72) 32 __builtin_abort (); 33 return 0; 34 } 35