diff options
author | Daniel Dunbar <daniel@zuster.org> | 2009-04-22 08:22:17 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2009-04-22 08:22:17 +0000 |
commit | 3fea0c01e178e46eb20e81de4907a3d144c21fd6 (patch) | |
tree | 88031bc5a0f9b5afbc115f4ab2cdf858668f148e /lib/CodeGen | |
parent | c8cbf1944863160f5f6f82967270b68bfb41361f (diff) |
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
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/CGObjCMac.cpp | 14 |
1 files changed, 6 insertions, 8 deletions
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 |