InvalidPtrEmbed occurs when an embedded field is of the pointer form *T, and T itself is itself a pointer, an unsafe.Pointer, or an interface. Per the spec: "An embedded field must be specified as a type name T or as a pointer to a non-interface type name *T, and T itself may not be a pointer type." Example: type T *int type S struct { *T }