[Reapply r128776, modified so that it does not break debug info.]
Change the return type of CodeGenVTables::getVirtualBaseOffsetOffset() to CharUnits. No change in functionality intended. llvm-svn: 129072
This commit is contained in:
@@ -1339,7 +1339,7 @@ ReturnAdjustment VTableBuilder::ComputeReturnAdjustment(BaseOffset Offset) {
|
||||
} else {
|
||||
Adjustment.VBaseOffsetOffset =
|
||||
VTables.getVirtualBaseOffsetOffset(Offset.DerivedClass,
|
||||
Offset.VirtualBase);
|
||||
Offset.VirtualBase).getQuantity();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2431,14 +2431,15 @@ uint64_t CodeGenVTables::getMethodVTableIndex(GlobalDecl GD) {
|
||||
return I->second;
|
||||
}
|
||||
|
||||
int64_t CodeGenVTables::getVirtualBaseOffsetOffset(const CXXRecordDecl *RD,
|
||||
const CXXRecordDecl *VBase) {
|
||||
CharUnits
|
||||
CodeGenVTables::getVirtualBaseOffsetOffset(const CXXRecordDecl *RD,
|
||||
const CXXRecordDecl *VBase) {
|
||||
ClassPairTy ClassPair(RD, VBase);
|
||||
|
||||
VirtualBaseClassOffsetOffsetsMapTy::iterator I =
|
||||
VirtualBaseClassOffsetOffsets.find(ClassPair);
|
||||
if (I != VirtualBaseClassOffsetOffsets.end())
|
||||
return I->second.getQuantity();
|
||||
return I->second;
|
||||
|
||||
VCallAndVBaseOffsetBuilder Builder(RD, RD, /*FinalOverriders=*/0,
|
||||
BaseSubobject(RD, CharUnits::Zero()),
|
||||
@@ -2458,7 +2459,7 @@ int64_t CodeGenVTables::getVirtualBaseOffsetOffset(const CXXRecordDecl *RD,
|
||||
I = VirtualBaseClassOffsetOffsets.find(ClassPair);
|
||||
assert(I != VirtualBaseClassOffsetOffsets.end() && "Did not find index!");
|
||||
|
||||
return I->second.getQuantity();
|
||||
return I->second;
|
||||
}
|
||||
|
||||
uint64_t
|
||||
|
||||
Reference in New Issue
Block a user