Minor refinement of VTableBuilder.h: fix wrong indentation, rename a struct field with a more appropriate name

llvm-svn: 194202
This commit is contained in:
Timur Iskhodzhanov 2013-11-07 13:34:02 +00:00
parent e7af1ec97e
commit 9e7f505515
3 changed files with 16 additions and 18 deletions

View File

@ -233,23 +233,21 @@ public:
} }
vtable_component_iterator vtable_component_begin() const { vtable_component_iterator vtable_component_begin() const {
return VTableComponents.get(); return VTableComponents.get();
} }
vtable_component_iterator vtable_component_end() const { vtable_component_iterator vtable_component_end() const {
return VTableComponents.get()+NumVTableComponents; return VTableComponents.get() + NumVTableComponents;
} }
uint64_t getNumVTableThunks() const { uint64_t getNumVTableThunks() const { return NumVTableThunks; }
return NumVTableThunks;
}
vtable_thunk_iterator vtable_thunk_begin() const { vtable_thunk_iterator vtable_thunk_begin() const {
return VTableThunks.get(); return VTableThunks.get();
} }
vtable_thunk_iterator vtable_thunk_end() const { vtable_thunk_iterator vtable_thunk_end() const {
return VTableThunks.get()+NumVTableThunks; return VTableThunks.get() + NumVTableThunks;
} }
uint64_t getAddressPoint(BaseSubobject Base) const { uint64_t getAddressPoint(BaseSubobject Base) const {
@ -414,27 +412,27 @@ public:
/// This is the offset of the vfptr from the start of the last vbase, or the /// This is the offset of the vfptr from the start of the last vbase, or the
/// complete type if there are no virtual bases. /// complete type if there are no virtual bases.
CharUnits VFTableOffset; CharUnits VFPtrOffset;
/// Method's index in the vftable. /// Method's index in the vftable.
uint64_t Index; uint64_t Index;
MethodVFTableLocation() MethodVFTableLocation()
: VBTableIndex(0), VBase(0), VFTableOffset(CharUnits::Zero()), : VBTableIndex(0), VBase(0), VFPtrOffset(CharUnits::Zero()),
Index(0) {} Index(0) {}
MethodVFTableLocation(uint64_t VBTableIndex, const CXXRecordDecl *VBase, MethodVFTableLocation(uint64_t VBTableIndex, const CXXRecordDecl *VBase,
CharUnits VFTableOffset, uint64_t Index) CharUnits VFPtrOffset, uint64_t Index)
: VBTableIndex(VBTableIndex), VBase(VBase), : VBTableIndex(VBTableIndex), VBase(VBase),
VFTableOffset(VFTableOffset), Index(Index) {} VFPtrOffset(VFPtrOffset), Index(Index) {}
bool operator<(const MethodVFTableLocation &other) const { bool operator<(const MethodVFTableLocation &other) const {
if (VBTableIndex != other.VBTableIndex) { if (VBTableIndex != other.VBTableIndex) {
assert(VBase != other.VBase); assert(VBase != other.VBase);
return VBTableIndex < other.VBTableIndex; return VBTableIndex < other.VBTableIndex;
} }
if (VFTableOffset != other.VFTableOffset) if (VFPtrOffset != other.VFPtrOffset)
return VFTableOffset < other.VFTableOffset; return VFPtrOffset < other.VFPtrOffset;
if (Index != other.Index) if (Index != other.Index)
return Index < other.Index; return Index < other.Index;
return false; return false;

View File

@ -3317,7 +3317,7 @@ void MicrosoftVTableContext::dumpMethodLocations(
IndicesMap[I->second] = MethodName; IndicesMap[I->second] = MethodName;
} }
if (!I->second.VFTableOffset.isZero() || I->second.VBTableIndex != 0) if (!I->second.VFPtrOffset.isZero() || I->second.VBTableIndex != 0)
HasNonzeroOffset = true; HasNonzeroOffset = true;
} }
@ -3333,7 +3333,7 @@ void MicrosoftVTableContext::dumpMethodLocations(
I = IndicesMap.begin(), I = IndicesMap.begin(),
E = IndicesMap.end(); E = IndicesMap.end();
I != E; ++I) { I != E; ++I) {
CharUnits VFPtrOffset = I->first.VFTableOffset; CharUnits VFPtrOffset = I->first.VFPtrOffset;
uint64_t VBIndex = I->first.VBTableIndex; uint64_t VBIndex = I->first.VBTableIndex;
if (HasNonzeroOffset && if (HasNonzeroOffset &&
(VFPtrOffset != LastVFPtrOffset || VBIndex != LastVBIndex)) { (VFPtrOffset != LastVFPtrOffset || VBIndex != LastVBIndex)) {

View File

@ -128,7 +128,7 @@ public:
// In this case, we just use a generic pointer type. // In this case, we just use a generic pointer type.
// FIXME: might want to have a more precise type in the non-virtual // FIXME: might want to have a more precise type in the non-virtual
// multiple inheritance case. // multiple inheritance case.
if (ML.VBase || !ML.VFTableOffset.isZero()) if (ML.VBase || !ML.VFPtrOffset.isZero())
return 0; return 0;
} }
return MD->getParent(); return MD->getParent();
@ -600,7 +600,7 @@ llvm::Value *MicrosoftCXXABI::adjustThisArgumentForVirtualCall(
unsigned AS = cast<llvm::PointerType>(This->getType())->getAddressSpace(); unsigned AS = cast<llvm::PointerType>(This->getType())->getAddressSpace();
llvm::Type *charPtrTy = CGF.Int8Ty->getPointerTo(AS); llvm::Type *charPtrTy = CGF.Int8Ty->getPointerTo(AS);
CharUnits StaticOffset = ML.VFTableOffset; CharUnits StaticOffset = ML.VFPtrOffset;
if (ML.VBase) { if (ML.VBase) {
bool AvoidVirtualOffset = false; bool AvoidVirtualOffset = false;
if (isa<CXXDestructorDecl>(MD) && GD.getDtorType() == Dtor_Base) { if (isa<CXXDestructorDecl>(MD) && GD.getDtorType() == Dtor_Base) {
@ -723,7 +723,7 @@ llvm::Value *MicrosoftCXXABI::adjustThisParameterInVirtualFunctionPrologue(
MicrosoftVTableContext::MethodVFTableLocation ML = MicrosoftVTableContext::MethodVFTableLocation ML =
CGM.getMicrosoftVTableContext().getMethodVFTableLocation(LookupGD); CGM.getMicrosoftVTableContext().getMethodVFTableLocation(LookupGD);
CharUnits Adjustment = ML.VFTableOffset; CharUnits Adjustment = ML.VFPtrOffset;
if (ML.VBase) { if (ML.VBase) {
const ASTRecordLayout &DerivedLayout = const ASTRecordLayout &DerivedLayout =
CGF.getContext().getASTRecordLayout(MD->getParent()); CGF.getContext().getASTRecordLayout(MD->getParent());