https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47409
uecker at gcc dot gnu.org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |uecker at gcc dot gnu.org --- Comment #28 from uecker at gcc dot gnu.org --- >From a C standard side I think this is not clear. Usually for qualifiers what matters is the qualifier of the lvalue used for the access, and the access does not use the qualifier. But then accessing an object declared volatile (or const) using an access without the qualifier is UB, and one can reasonably assume that this rule also applies to fields. It seems for atomic we do not have such a rule. For const we forbid structure assignments of structures with const members. This would correspond to the idea that a structure assignment is basically composed of member assignments. For volatile and atomic we do not do this though. I am also not entirely sure what would be the most useful behavior.