diff options
Diffstat (limited to 'gnu/llvm/tools/clang/lib/CodeGen/CGVTables.h')
| -rw-r--r-- | gnu/llvm/tools/clang/lib/CodeGen/CGVTables.h | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/gnu/llvm/tools/clang/lib/CodeGen/CGVTables.h b/gnu/llvm/tools/clang/lib/CodeGen/CGVTables.h index b92212c368a..6377659e4cb 100644 --- a/gnu/llvm/tools/clang/lib/CodeGen/CGVTables.h +++ b/gnu/llvm/tools/clang/lib/CodeGen/CGVTables.h @@ -40,7 +40,7 @@ class CodeGenVTables { typedef std::pair<const CXXRecordDecl *, BaseSubobject> BaseSubobjectPairTy; typedef llvm::DenseMap<BaseSubobjectPairTy, uint64_t> SubVTTIndiciesMapTy; - + /// SubVTTIndicies - Contains indices into the various sub-VTTs. SubVTTIndiciesMapTy SubVTTIndicies; @@ -57,12 +57,10 @@ class CodeGenVTables { /// Cache for the deleted virtual member call function. llvm::Constant *DeletedVirtualFn = nullptr; - /// emitThunk - Emit a single thunk. - void emitThunk(GlobalDecl GD, const ThunkInfo &Thunk, bool ForVTable); - - /// maybeEmitThunkForVTable - Emit the given thunk for the vtable if needed by - /// the ABI. - void maybeEmitThunkForVTable(GlobalDecl GD, const ThunkInfo &Thunk); + /// Get the address of a thunk and emit it if necessary. + llvm::Constant *maybeEmitThunk(GlobalDecl GD, + const ThunkInfo &ThunkAdjustments, + bool ForVTable); void addVTableComponent(ConstantArrayBuilder &builder, const VTableLayout &layout, unsigned idx, @@ -89,21 +87,21 @@ public: /// getSubVTTIndex - Return the index of the sub-VTT for the base class of the /// given record decl. uint64_t getSubVTTIndex(const CXXRecordDecl *RD, BaseSubobject Base); - + /// getSecondaryVirtualPointerIndex - Return the index in the VTT where the /// virtual pointer for the given subobject is located. uint64_t getSecondaryVirtualPointerIndex(const CXXRecordDecl *RD, BaseSubobject Base); - /// GenerateConstructionVTable - Generate a construction vtable for the given + /// GenerateConstructionVTable - Generate a construction vtable for the given /// base subobject. llvm::GlobalVariable * - GenerateConstructionVTable(const CXXRecordDecl *RD, const BaseSubobject &Base, - bool BaseIsVirtual, + GenerateConstructionVTable(const CXXRecordDecl *RD, const BaseSubobject &Base, + bool BaseIsVirtual, llvm::GlobalVariable::LinkageTypes Linkage, VTableAddressPointsMapTy& AddressPoints); - + /// GetAddrOfVTT - Get the address of the VTT for the given record decl. llvm::GlobalVariable *GetAddrOfVTT(const CXXRecordDecl *RD); @@ -114,7 +112,7 @@ public: /// EmitThunks - Emit the associated thunks for the given global decl. void EmitThunks(GlobalDecl GD); - + /// GenerateClassData - Generate all the class data required to be /// generated upon definition of a KeyFunction. This includes the /// vtable, the RTTI data structure (if RTTI is enabled) and the VTT |
