Suggested resolution [SUPERSEDED]:
Change in 11.4.1 [class.mem.general] paragraphs 23-25 as follows (also add bullets):
The common initial sequence of two standard-layout struct (11.2 [class.prop]) types is the longest sequence of non-static data members and bit-fields in declaration order, starting with the first such entity in each of the structs, such that
- corresponding entities have layout-compatible types (6.8 [basic.types]),
- either both entities have alignment-specifiers that specify equivalent alignment or neither entity has an alignment-specifier (9.13.2 [dcl.align]),
- either both entities are declared with the no_unique_address attribute (9.13.11 [dcl.attr.nouniqueaddr]) or neither is, and
- either both entities are bit-fields with the same width or neither is a bit-field.
[...]
Two standard-layout struct (11.2 [class.prop]) types are layout-compatible classes if their common initial sequence comprises all members and bit-fields of both classes (6.8 [basic.types]) and either both types are declared with alignment-specifiers that specify equivalent alignment or neither type has an alignment-specifier.
Two standard-layout unions are layout-compatible if they have the same number of non-static data members and corresponding non-static data members (in any order)
- have layout-compatible types (6.8.1 [basic.types.general]) and
- either both have alignment-specifiers that specify equivalent alignment or neither has an alignment-specifier.