diff options
Diffstat (limited to 'lib/CodeGen/CGVtable.cpp')
-rw-r--r-- | lib/CodeGen/CGVtable.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/CodeGen/CGVtable.cpp b/lib/CodeGen/CGVtable.cpp index 592f782edc..3322510815 100644 --- a/lib/CodeGen/CGVtable.cpp +++ b/lib/CodeGen/CGVtable.cpp @@ -3609,6 +3609,19 @@ int64_t CodeGenVTables::getVirtualBaseOffsetOffset(const CXXRecordDecl *RD, return I->second; } +uint64_t +CodeGenVTables::getAddressPoint(BaseSubobject Base, const CXXRecordDecl *RD) { + const CodeGenVTables::AddrSubMap_t& AddressPoints = getAddressPoints(RD); + + uint64_t AddressPoint = + AddressPoints.lookup(std::make_pair(Base.getBase(), + Base.getBaseOffset())); + + assert(AddressPoint && "Address point must not be zero!"); + + return AddressPoint; +} + const CodeGenVTables::AddrSubMap_t & CodeGenVTables::getAddressPoints(const CXXRecordDecl *RD) { if (!OldAddressPoints[RD]) { |