The assertion fails because CGObjCRuntime::EmitValueForIvarAtOffset doesn't get the correct type of the ivar when the class the ivar belongs to is parameterized. It assigns the type of the ivar in the parameterized base class, instead of the type in the derived class, to IvarTy. This eventually causes an assertion failure in CodeGenFunction::EmitARCStoreStrongCall because of a mismatch between the types of the address and the value being stored.
Details
Details
Diff Detail
Diff Detail