It turns out BuildAggrIvarLayout wasn't even using the shadow struct,
just computing it!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70779 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/CGObjCMac.cpp b/lib/CodeGen/CGObjCMac.cpp
index 35fb54f..a5450ff 100644
--- a/lib/CodeGen/CGObjCMac.cpp
+++ b/lib/CodeGen/CGObjCMac.cpp
@@ -35,14 +35,6 @@
// don't belong in CGObjCRuntime either so we will live with it for
// now.
-static const llvm::StructType *
-GetConcreteClassStruct(CodeGen::CodeGenModule &CGM,
- const ObjCInterfaceDecl *OID) {
- assert(!OID->isForwardDecl() && "Invalid interface decl!");
- const RecordDecl *RD = CGM.getContext().addRecordToClass(OID);
- return cast<llvm::StructType>(CGM.getTypes().ConvertTagDeclType(RD));
-}
-
/// FindIvarInterface - Find the interface containing the ivar.
///
/// FIXME: We shouldn't need to do this, the containing context should
@@ -3117,9 +3109,7 @@
SkipIvars.clear();
IvarsInfo.clear();
- const llvm::StructLayout *Layout =
- CGM.getTargetData().getStructLayout(GetConcreteClassStruct(CGM, OI));
- BuildAggrIvarLayout(OI, Layout, 0, RecFields, 0, ForStrongLayout, hasUnion);
+ BuildAggrIvarLayout(OI, 0, 0, RecFields, 0, ForStrongLayout, hasUnion);
if (IvarsInfo.empty())
return llvm::Constant::getNullValue(PtrTy);