Florian Weimer <f...@deneb.enyo.de> writes:

> * Joshua Haberman:
>
>> To me this allows the following:
>>
>>   int i;
>>   union u { int x; } *pu = (union u*)&i;
>>   printf("%d\n", pu->x);
>
> I think the cast on the secodn line is undefined,

Only if union u has stricter alignment requirements than int; otherwise
you are guaranteed to get back the original pointer when casting back to
int*.

Andreas.

-- 
Andreas Schwab, sch...@linux-m68k.org
GPG Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."

Reply via email to