]> granicus.if.org Git - clang/commitdiff
Emit meta data using the Ivar, not a looked up FieldDecl.
authorDaniel Dunbar <daniel@zuster.org>
Wed, 22 Apr 2009 08:22:17 +0000 (08:22 +0000)
committerDaniel Dunbar <daniel@zuster.org>
Wed, 22 Apr 2009 08:22:17 +0000 (08:22 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69790 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGObjCMac.cpp

index 7d1cea7e0e0afc9b8268c4cf8b50d3d634961538..dc66fa46b139d0db64a464ad2dcd79b21d7d4621 100644 (file)
@@ -2089,9 +2089,8 @@ llvm::Constant *CGObjCMac::EmitIvarList(const ObjCImplementationDecl *ID,
     
   for (unsigned i = 0, e = OIvars.size(); i != e; ++i) {
     ObjCIvarDecl *IVD = OIvars[i];
-    const FieldDecl *Field = OID->lookupFieldDeclForIvar(CGM.getContext(), IVD);
-    Ivar[0] = GetMethodVarName(Field->getIdentifier());
-    Ivar[1] = GetMethodVarType(Field);
+    Ivar[0] = GetMethodVarName(IVD->getIdentifier());
+    Ivar[1] = GetMethodVarType(IVD);
     Ivar[2] = llvm::ConstantInt::get(ObjCTypes.IntTy, 
                                      ComputeIvarBaseOffset(CGM, OID, IVD));
     Ivars.push_back(llvm::ConstantStruct::get(ObjCTypes.IvarTy, Ivar));
@@ -4648,16 +4647,15 @@ llvm::Constant *CGObjCNonFragileABIMac::EmitIvarList(
     
   for (unsigned i = 0, e = OIvars.size(); i != e; ++i) {
     ObjCIvarDecl *IVD = OIvars[i];
-    const FieldDecl *Field = OID->lookupFieldDeclForIvar(CGM.getContext(), IVD);
     Ivar[0] = EmitIvarOffsetVar(ID->getClassInterface(), IVD, 
                                 ComputeIvarBaseOffset(CGM, OID, IVD));
-    Ivar[1] = GetMethodVarName(Field->getIdentifier());
-    Ivar[2] = GetMethodVarType(Field);
+    Ivar[1] = GetMethodVarName(IVD->getIdentifier());
+    Ivar[2] = GetMethodVarType(IVD);
     const llvm::Type *FieldTy =
-      CGM.getTypes().ConvertTypeForMem(Field->getType());
+      CGM.getTypes().ConvertTypeForMem(IVD->getType());
     unsigned Size = CGM.getTargetData().getTypePaddedSize(FieldTy);
     unsigned Align = CGM.getContext().getPreferredTypeAlign(
-                       Field->getType().getTypePtr()) >> 3;
+                       IVD->getType().getTypePtr()) >> 3;
     Align = llvm::Log2_32(Align);
     Ivar[3] = llvm::ConstantInt::get(ObjCTypes.IntTy, Align);
     // NOTE. Size of a bitfield does not match gcc's, because of the