Fix ivar layout map generation (hopefully).

llvm-svn: 79968
This commit is contained in:
Anders Carlsson 2009-08-25 02:07:02 +00:00
parent 5a532380a1
commit 12e022ddbf
1 changed files with 6 additions and 1 deletions

View File

@ -3050,7 +3050,12 @@ void CGObjCCommonMac::BuildAggrIvarLayout(const ObjCImplementationDecl *OI,
if (RD) {
if (Field->isBitField()) {
CodeGenTypes::BitFieldInfo Info = CGM.getTypes().getBitFieldInfo(Field);
FieldOffset = Layout->getElementOffset(Info.FieldNo);
const llvm::Type *Ty =
CGM.getTypes().ConvertTypeForMemRecursive(Field->getType());
uint64_t TypeSize =
CGM.getTypes().getTargetData().getTypeAllocSize(Ty);
FieldOffset = Info.FieldNo * TypeSize;
} else
FieldOffset =
Layout->getElementOffset(CGM.getTypes().getLLVMFieldNo(Field));