Rename getBaseClassOffset to getBaseClassOffsetInBits and introduce a getBaseClassOffset which returns the offset in CharUnits. Do the same thing for getVBaseClassOffset.
llvm-svn: 117881
This commit is contained in:
@@ -218,7 +218,7 @@ void VTTBuilder::LayoutSecondaryVTTs(BaseSubobject Base) {
|
||||
|
||||
const ASTRecordLayout &Layout = CGM.getContext().getASTRecordLayout(RD);
|
||||
uint64_t BaseOffset = Base.getBaseOffset() +
|
||||
Layout.getBaseClassOffset(BaseDecl);
|
||||
Layout.getBaseClassOffsetInBits(BaseDecl);
|
||||
|
||||
// Layout the VTT for this base.
|
||||
LayoutVTT(BaseSubobject(BaseDecl, BaseOffset), /*BaseIsVirtual=*/false);
|
||||
@@ -262,12 +262,13 @@ VTTBuilder::LayoutSecondaryVirtualPointers(BaseSubobject Base,
|
||||
if (!VBases.insert(BaseDecl))
|
||||
continue;
|
||||
|
||||
BaseOffset = MostDerivedClassLayout.getVBaseClassOffset(BaseDecl);
|
||||
BaseOffset = MostDerivedClassLayout.getVBaseClassOffsetInBits(BaseDecl);
|
||||
BaseDeclIsMorallyVirtual = true;
|
||||
} else {
|
||||
const ASTRecordLayout &Layout = CGM.getContext().getASTRecordLayout(RD);
|
||||
|
||||
BaseOffset = Base.getBaseOffset() + Layout.getBaseClassOffset(BaseDecl);
|
||||
BaseOffset =
|
||||
Base.getBaseOffset() + Layout.getBaseClassOffsetInBits(BaseDecl);
|
||||
|
||||
if (!Layout.getPrimaryBaseWasVirtual() &&
|
||||
Layout.getPrimaryBase() == BaseDecl)
|
||||
@@ -316,7 +317,7 @@ void VTTBuilder::LayoutVirtualVTTs(const CXXRecordDecl *RD,
|
||||
continue;
|
||||
|
||||
uint64_t BaseOffset =
|
||||
MostDerivedClassLayout.getVBaseClassOffset(BaseDecl);
|
||||
MostDerivedClassLayout.getVBaseClassOffsetInBits(BaseDecl);
|
||||
|
||||
LayoutVTT(BaseSubobject(BaseDecl, BaseOffset), /*BaseIsVirtual=*/true);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user