https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79024
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- Please read 3.11 more carefully. "The alignment required for a type might be different when it is used as the type of a complete object and when it is used as the type of a subobject. [...] The result of the alignof operator reflects the alignment requirement of the type in the complete-object case."