https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94600
--- Comment #8 from Hans-Peter Nilsson <hp at gcc dot gnu.org> --- (In reply to jos...@codesourcery.com from comment #7) > The Arm AAPCS has detailed rules for operations on individual volatile > bit-fields, but not for this case where the whole struct is volatile and > the operation is on the whole struct. I think you can consider this issue > in general as quality-of-implementation. Can we extrapolate this statement to the language level, that this is implementation- or port-specific? I'm curious to see how those reads from volatile LHS can be justified from a correctness point of view, in the context of this being an aggregate assignment.