From: Daniel Dunbar Date: Wed, 22 Apr 2009 08:22:17 +0000 (+0000) Subject: Emit meta data using the Ivar, not a looked up FieldDecl. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3fea0c01e178e46eb20e81de4907a3d144c21fd6;p=clang Emit meta data using the Ivar, not a looked up FieldDecl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69790 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGObjCMac.cpp b/lib/CodeGen/CGObjCMac.cpp index 7d1cea7e0e..dc66fa46b1 100644 --- a/lib/CodeGen/CGObjCMac.cpp +++ b/lib/CodeGen/CGObjCMac.cpp @@ -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