+}
+
+4.2.2 Variants (Discriminated/Tagged Unions)
+
+A CTF variant is a selection between different types. A CTF variant must always
+be defined within the scope of a structure or within fields contained within a
+structure (defined recursively). A "tag" enumeration field must appear in either
+the same lexical scope or an uppermost scope, prior to the variant field (in
+field declaration order). The type selection is indicated by the mapping from
+the enumeration value to the string used as variant type selector. The field to
+use as tag is specified by the "tag_field", specified between "< >" after the
+"variant" keyword for unnamed variants, and after "variant name" for named
+variants.
+
+The alignment of the variant is the alignment of the type as selected by the tag
+value for the specific instance of the variant. The alignment of the type
+containing the variant is independent of the variant alignment. The size of the
+variant is the size as selected by the tag value for the specific instance of
+the variant.
+
+A named variant declaration followed by its definition within a structure
+declaration:
+
+variant name {
+ field_type sel1;
+ field_type sel2;
+ field_type sel3;
+ ...
+};