https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65892
--- Comment #57 from Andrew Haley <aph at gcc dot gnu.org> --- (In reply to Davin McCall from comment #52) > (In reply to Andrew Haley from comment #45) > > (In reply to Davin McCall from comment #44) > > > The "one special guarantee" clause appears in the section describing union > > > member access via the "." or "->" operators, implying that it only applies > > > to the access of union members via the union. > > > > I don't believe that's what is intended, or that you can make such a > > conclusion based on the section in which the rule appears. It applies > > to other accesses too, as is (somewhat) made clear by the rationale in > > http://www.open-std.org/jtc1/sc22/wg14/www/docs/n685.htm: > > It certainly may not be what is intended by N685, but I think it's normally > reasonable to conclude that a statement in a particular section of a > document applies to that section and not more universally than that; in this > case, the "universal" interpretation flatly contradicts the strict aliasing > rule and any other rule which would otherwise disallow access, which seems > extremely problematic to me. > > In general it appears the committee have asserted that the "universal" > interpretation (which since N685 requires visibility of the union > declaration to be effective) is the correct one, but my argument ... doesn't really matter from a practical point of view, does it? That ship has sailed. > is that the actual text of the standard strongly implies something > different, and that the interpretation being pushed instead turns > another portion of the standard text into nonsense. I don't think that's it really does, but I think we're done.