}
vtable_component_iterator vtable_component_begin() const {
- return VTableComponents.get();
+ return VTableComponents.get();
}
vtable_component_iterator vtable_component_end() const {
- return VTableComponents.get()+NumVTableComponents;
+ return VTableComponents.get() + NumVTableComponents;
}
- uint64_t getNumVTableThunks() const {
- return NumVTableThunks;
- }
+ uint64_t getNumVTableThunks() const { return NumVTableThunks; }
vtable_thunk_iterator vtable_thunk_begin() const {
- return VTableThunks.get();
+ return VTableThunks.get();
}
vtable_thunk_iterator vtable_thunk_end() const {
- return VTableThunks.get()+NumVTableThunks;
+ return VTableThunks.get() + NumVTableThunks;
}
uint64_t getAddressPoint(BaseSubobject Base) const {
/// This is the offset of the vfptr from the start of the last vbase, or the
/// complete type if there are no virtual bases.
- CharUnits VFTableOffset;
+ CharUnits VFPtrOffset;
/// Method's index in the vftable.
uint64_t Index;
MethodVFTableLocation()
- : VBTableIndex(0), VBase(0), VFTableOffset(CharUnits::Zero()),
+ : VBTableIndex(0), VBase(0), VFPtrOffset(CharUnits::Zero()),
Index(0) {}
MethodVFTableLocation(uint64_t VBTableIndex, const CXXRecordDecl *VBase,
- CharUnits VFTableOffset, uint64_t Index)
+ CharUnits VFPtrOffset, uint64_t Index)
: VBTableIndex(VBTableIndex), VBase(VBase),
- VFTableOffset(VFTableOffset), Index(Index) {}
+ VFPtrOffset(VFPtrOffset), Index(Index) {}
bool operator<(const MethodVFTableLocation &other) const {
if (VBTableIndex != other.VBTableIndex) {
assert(VBase != other.VBase);
return VBTableIndex < other.VBTableIndex;
}
- if (VFTableOffset != other.VFTableOffset)
- return VFTableOffset < other.VFTableOffset;
+ if (VFPtrOffset != other.VFPtrOffset)
+ return VFPtrOffset < other.VFPtrOffset;
if (Index != other.Index)
return Index < other.Index;
return false;
// In this case, we just use a generic pointer type.
// FIXME: might want to have a more precise type in the non-virtual
// multiple inheritance case.
- if (ML.VBase || !ML.VFTableOffset.isZero())
+ if (ML.VBase || !ML.VFPtrOffset.isZero())
return 0;
}
return MD->getParent();
unsigned AS = cast<llvm::PointerType>(This->getType())->getAddressSpace();
llvm::Type *charPtrTy = CGF.Int8Ty->getPointerTo(AS);
- CharUnits StaticOffset = ML.VFTableOffset;
+ CharUnits StaticOffset = ML.VFPtrOffset;
if (ML.VBase) {
bool AvoidVirtualOffset = false;
if (isa<CXXDestructorDecl>(MD) && GD.getDtorType() == Dtor_Base) {
MicrosoftVTableContext::MethodVFTableLocation ML =
CGM.getMicrosoftVTableContext().getMethodVFTableLocation(LookupGD);
- CharUnits Adjustment = ML.VFTableOffset;
+ CharUnits Adjustment = ML.VFPtrOffset;
if (ML.VBase) {
const ASTRecordLayout &DerivedLayout =
CGF.getContext().getASTRecordLayout(MD->getParent());