diff options
Diffstat (limited to 'clang/lib/CodeGen/CGVtable.h')
-rw-r--r-- | clang/lib/CodeGen/CGVtable.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/clang/lib/CodeGen/CGVtable.h b/clang/lib/CodeGen/CGVtable.h index ebccb514e9f..a38153bc4b8 100644 --- a/clang/lib/CodeGen/CGVtable.h +++ b/clang/lib/CodeGen/CGVtable.h @@ -222,13 +222,17 @@ public: typedef std::pair<const CXXRecordDecl *, uint64_t> CtorVtable_t; typedef llvm::DenseMap<CtorVtable_t, int64_t> AddrSubMap_t; typedef llvm::DenseMap<const CXXRecordDecl *, AddrSubMap_t *> AddrMap_t; - llvm::DenseMap<const CXXRecordDecl *, AddrMap_t*> AddressPoints; typedef llvm::DenseMap<BaseSubobject, uint64_t> AddressPointsMapTy; + const CodeGenVTables::AddrSubMap_t& getAddressPoints(const CXXRecordDecl *RD); + + llvm::DenseMap<const CXXRecordDecl *, AddrMap_t*> AddressPoints; + private: CodeGenModule &CGM; + /// MethodVtableIndices - Contains the index (relative to the vtable address /// point) where the function pointer for a virtual function is stored. typedef llvm::DenseMap<GlobalDecl, int64_t> MethodVtableIndicesTy; @@ -312,8 +316,9 @@ public: int64_t getVirtualBaseOffsetOffset(const CXXRecordDecl *RD, const CXXRecordDecl *VBase); - llvm::GlobalVariable *getVtable(const CXXRecordDecl *RD); - + /// getAddrOfVTable - Get the address of the vtable for the given record decl. + llvm::Constant *getAddrOfVTable(const CXXRecordDecl *RD); + /// CtorVtableInfo - Information about a constructor vtable. struct CtorVtableInfo { /// Vtable - The vtable itself. |