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);