struct s { unsigned int x:1; unsigned int unused:15; unsigned short y; }; union u { struct s s; volatile int i; }; void foo(union u *ptr, int flag);