Hans-Peter Nilsson wrote: >> Date: Tue, 24 Jun 2008 10:36:15 +0100 >> From: Andrew Haley <[EMAIL PROTECTED]> > >> I thought cast-through-pointer-to-union didn't work and was already >> disallowed; we've been around all this already. > > We also bless assignments through unions, and this could be > argued as assigning through a union, albeit casted. > >> This patch of yours >> already documents uncontroversial behaviour. > > That's what I hope, but the existence of that code together in > an *else* clause of #ifdef YES_ALIAS by a well-known author > makes it de-facto controversial IMHO. Note also that another > maintainer thought the code to be valid; see the PR.
So I see. I'm pretty sure that the compiler's alias analysis won't think it's valid, but I haven't checked. Do we actually document anywhere that a C++-style type pun along the lines of reinterpret_cast<T&>(x) will not work? I'm guessing it probably won't, and that the union trick is the only thing we do support. Andrew.