\h'2n'} obj;
};
-struct SodObject__ilayout {
+struct SodClass__ilayout {
\h'2n'union {
\h'4n'struct SodClass__ichain_obj {
\h'6n'const struct SodClass__vt_obj *_vt;
superclasses
.IR A
in the same chain in some (unimportant) order.
-A `pointer to
-.IR C '
-is always assumed
-(and, indeed, defined in C's type system)
-to be a pointer to the
-.B struct
-.IB C __ichain_ h \fR.
+The (somewhat obtuse) purpose of this union is to
+engage the `common initial sequence' rule of
+C99 (clause 6.5.2.3).
.PP
The
.B ichain
.IB C __islots
.IB c ;
.PP
+A `pointer to
+.IR C '
+is always assumed
+(and, indeed, defined in C's type system)
+to be a pointer to the
+.B struct
+.IB C __ichain_ h \fR.
+.PP
Finally, the
.B islots
structure simply contains one member for each slot defined by
.ft P
.fi
.PP
+In the following,
+let
+.I M
+be the metaclass of
+.IR C .
+.PP
The outer layer is a
.B union
.IB C __vtu_ h