/* In this testcase, the return value of foo() is being promotedto a register * which breaks stuff */#include<stdio.h>unionX{charX;void*B;inta,b,c,d;};unionXfoo(){unionXGlobal;Global.B=(void*)123;/* Interesting part */returnGlobal;}voidmain(){unionXtest=foo();printf("0x%p",test.B);}