Fix ivar layout map generation (hopefully).
llvm-svn: 79968
This commit is contained in:
parent
5a532380a1
commit
12e022ddbf
|
@ -3050,7 +3050,12 @@ void CGObjCCommonMac::BuildAggrIvarLayout(const ObjCImplementationDecl *OI,
|
||||||
if (RD) {
|
if (RD) {
|
||||||
if (Field->isBitField()) {
|
if (Field->isBitField()) {
|
||||||
CodeGenTypes::BitFieldInfo Info = CGM.getTypes().getBitFieldInfo(Field);
|
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
|
} else
|
||||||
FieldOffset =
|
FieldOffset =
|
||||||
Layout->getElementOffset(CGM.getTypes().getLLVMFieldNo(Field));
|
Layout->getElementOffset(CGM.getTypes().getLLVMFieldNo(Field));
|
||||||
|
|
Loading…
Reference in New Issue