There's a comment on the GCC bug that suggests that for volatile to have this affect on a structure member, it would require the whole structure to be tagged volatile - not just the member concerned. (Not offering my own opinion here either way, EINSUFFICIENTEXPERTISE, just drawing attention to the comment).