https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94600
--- Comment #7 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- 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.