summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CGVtable.h
diff options
context:
space:
mode:
Diffstat (limited to 'clang/lib/CodeGen/CGVtable.h')
-rw-r--r--clang/lib/CodeGen/CGVtable.h11
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.
OpenPOWER on IntegriCloud