https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65892
--- Comment #54 from Davin McCall <davmac at davmac dot org> --- (In reply to James Kuyper Jr. from comment #53) > [...] However, because those > pointers are passed to f(), which does dereference them, f() does accesses > those members, and it does so via the use of the '.' operator in the calling > routine. Therefore, you need, at a minimum, to modify "accesses via" to > "accesses directly via", in order to convey your intended meaning. I thought it was clear that I was referring to access via the union. That is certainly what I did mean. > > I don't see anything in the standard's wording of 6.5.2.3p6 to justify > restricting what it says to direct accesses - it says "it is permitted to > inspect", without specifying restrictions on how the inspection may be > performed. As I have said, it is in a section regarding access and in a paragraph discussing "use of unions". While I understand what you are saying, I don't feel my own interpretation is really that difficult to fathom, and I'm not the only one to take it. See http://archive.is/PnW28 (DR 257). > The words "anywhere that a declaration of the completed type of the union > is visible." would become pointless with your interpretation. Yes, as I already said.