blob: 049563d92091dae226546bc830556dd0f9a71d44 [file] [log] [blame]
/* PR tree-optimization/86492 */
union U
{
unsigned int r;
struct S
{
unsigned int a:12;
unsigned int b:4;
unsigned int c:16;
} f;
};
__attribute__((noipa)) unsigned int
foo (unsigned int x)
{
union U u;
u.r = 0;
u.f.c = x;
u.f.b = 0xe;
return u.r;
}
int
main ()
{
union U u;
if (__CHAR_BIT__ * __SIZEOF_INT__ != 32 || sizeof (u.r) != sizeof (u.f))
return 0;
u.r = foo (0x72);
if (u.f.a != 0 || u.f.b != 0xe || u.f.c != 0x72)
__builtin_abort ();
return 0;
}