diff options
Diffstat (limited to 'clang/lib/CodeGen/CGVtable.h')
-rw-r--r-- | clang/lib/CodeGen/CGVtable.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGVtable.h b/clang/lib/CodeGen/CGVtable.h index fd7a4865b64..1507725f0fb 100644 --- a/clang/lib/CodeGen/CGVtable.h +++ b/clang/lib/CodeGen/CGVtable.h @@ -15,6 +15,7 @@ #define CLANG_CODEGEN_CGVTABLE_H #include "llvm/ADT/DenseMap.h" +#include "llvm/ADT/DenseSet.h" #include "llvm/GlobalVariable.h" #include "GlobalDecl.h" @@ -83,6 +84,11 @@ class CGVtableInfo { /// pointers in the vtable for a given record decl. llvm::DenseMap<const CXXRecordDecl *, uint64_t> NumVirtualFunctionPointers; + typedef llvm::DenseMap<std::pair<GlobalDecl, GlobalDecl>, + ThunkAdjustment> SavedThisAdjustmentsTy; + SavedThisAdjustmentsTy SavedThisAdjustments; + llvm::DenseSet<const CXXRecordDecl*> SavedThisAdjustmentRecords; + /// getNumVirtualFunctionPointers - Return the number of virtual function /// pointers in the vtable for a given record decl. uint64_t getNumVirtualFunctionPointers(const CXXRecordDecl *RD); @@ -122,6 +128,8 @@ public: int64_t getVirtualBaseOffsetIndex(const CXXRecordDecl *RD, const CXXRecordDecl *VBase); + ThunkAdjustment getThisAdjustment(GlobalDecl GD, GlobalDecl OGD); + /// getVtableAddressPoint - returns the address point of the vtable for the /// given record decl. /// FIXME: This should return a list of address points. |