Quoting "H.J. Lu" <hjl.to...@gmail.com>:
Do you have a testcase for i386?
struct args { int i0, i1; }; union args_u { struct args *a; } __attribute__((transparent_union)); union args_u f (union args_u in) { union args_u out; out.a = in.a + 1; return out; }