class MicrosoftVTableContext
Declaration
class MicrosoftVTableContext : public VTableContextBase { /* full declaration omitted */ };
Declared at: clang/include/clang/AST/VTableBuilder.h:544
Inherits from: VTableContextBase
Member Variables
- private clang::ASTContext& Context
- private clang::MicrosoftVTableContext:: MethodVFTableLocationsTy MethodVFTableLocations
- private clang::MicrosoftVTableContext::VFPtrLocationsMapTy VFPtrLocations
- private clang::MicrosoftVTableContext::VFTableLayoutMapTy VFTableLayouts
- private llvm::DenseMap<const CXXRecordDecl*, std::unique_ptr<VirtualBaseInfo>> VBaseInfo
Inherited from VTableContextBase:
Method Overview
- public MicrosoftVTableContext(clang::ASTContext & Context)
- public static bool classof(const clang::VTableContextBase * VT)
- private const clang::VirtualBaseInfo & computeVBTableRelatedInformation(const clang::CXXRecordDecl * RD)
- private void computeVTablePaths(bool ForVBTables, const clang::CXXRecordDecl * RD, clang::VPtrInfoVector & Paths)
- private void computeVTableRelatedInformation(const clang::CXXRecordDecl * RD)
- private void dumpMethodLocations(const clang::CXXRecordDecl * RD, const clang::MicrosoftVTableContext::MethodVFTableLocationsTy & NewMethods, llvm::raw_ostream &)
- public const clang::VPtrInfoVector & enumerateVBTables(const clang::CXXRecordDecl * RD)
- private void enumerateVFPtrs(const clang::CXXRecordDecl * ForClass, clang::VPtrInfoVector & Result)
- public clang::MethodVFTableLocation getMethodVFTableLocation(clang::GlobalDecl GD)
- public const clang::VTableContextBase::ThunkInfoVectorTy * getThunkInfo(clang::GlobalDecl GD)
- public unsigned int getVBTableIndex(const clang::CXXRecordDecl * Derived, const clang::CXXRecordDecl * VBase)
- public const clang::VPtrInfoVector & getVFPtrOffsets(const clang::CXXRecordDecl * RD)
- public const clang::VTableLayout & getVFTableLayout(const clang::CXXRecordDecl * RD, clang::CharUnits VFPtrOffset)
- public ~MicrosoftVTableContext()
Inherited from VTableContextBase:
Methods
¶MicrosoftVTableContext(clang::ASTContext& Context)
MicrosoftVTableContext(clang::ASTContext& Context)
Declared at: clang/include/clang/AST/VTableBuilder.h:581
Parameters
- clang::ASTContext& Context
¶static bool classof(
const clang::VTableContextBase* VT)
static bool classof(
const clang::VTableContextBase* VT)
Declared at: clang/include/clang/AST/VTableBuilder.h:610
Parameters
- const clang::VTableContextBase* VT
¶const clang::VirtualBaseInfo&
computeVBTableRelatedInformation(
const clang::CXXRecordDecl* RD)
const clang::VirtualBaseInfo&
computeVBTableRelatedInformation(
const clang::CXXRecordDecl* RD)
Declared at: clang/include/clang/AST/VTableBuilder.h:575
Parameters
- const clang::CXXRecordDecl* RD
¶void computeVTablePaths(
bool ForVBTables,
const clang::CXXRecordDecl* RD,
clang::VPtrInfoVector& Paths)
void computeVTablePaths(
bool ForVBTables,
const clang::CXXRecordDecl* RD,
clang::VPtrInfoVector& Paths)
Declared at: clang/include/clang/AST/VTableBuilder.h:577
Parameters
- bool ForVBTables
- const clang::CXXRecordDecl* RD
- clang::VPtrInfoVector& Paths
¶void computeVTableRelatedInformation(
const clang::CXXRecordDecl* RD)
void computeVTableRelatedInformation(
const clang::CXXRecordDecl* RD)
Description
Compute and store all vtable related information (vtable layout, vbase offset offsets, thunks etc) for the given record decl.
Declared at: clang/include/clang/AST/VTableBuilder.h:568
Parameters
- const clang::CXXRecordDecl* RD
¶void dumpMethodLocations(
const clang::CXXRecordDecl* RD,
const clang::MicrosoftVTableContext::
MethodVFTableLocationsTy& NewMethods,
llvm::raw_ostream&)
void dumpMethodLocations(
const clang::CXXRecordDecl* RD,
const clang::MicrosoftVTableContext::
MethodVFTableLocationsTy& NewMethods,
llvm::raw_ostream&)
Declared at: clang/include/clang/AST/VTableBuilder.h:570
Parameters
- const clang::CXXRecordDecl* RD
- const clang::MicrosoftVTableContext:: MethodVFTableLocationsTy& NewMethods
- llvm::raw_ostream&
¶const clang::VPtrInfoVector& enumerateVBTables(
const clang::CXXRecordDecl* RD)
const clang::VPtrInfoVector& enumerateVBTables(
const clang::CXXRecordDecl* RD)
Declared at: clang/include/clang/AST/VTableBuilder.h:608
Parameters
- const clang::CXXRecordDecl* RD
¶void enumerateVFPtrs(
const clang::CXXRecordDecl* ForClass,
clang::VPtrInfoVector& Result)
void enumerateVFPtrs(
const clang::CXXRecordDecl* ForClass,
clang::VPtrInfoVector& Result)
Declared at: clang/include/clang/AST/VTableBuilder.h:566
Parameters
- const clang::CXXRecordDecl* ForClass
- clang::VPtrInfoVector& Result
¶clang::MethodVFTableLocation
getMethodVFTableLocation(clang::GlobalDecl GD)
clang::MethodVFTableLocation
getMethodVFTableLocation(clang::GlobalDecl GD)
Declared at: clang/include/clang/AST/VTableBuilder.h:591
Parameters
¶const clang::VTableContextBase::ThunkInfoVectorTy*
getThunkInfo(clang::GlobalDecl GD)
const clang::VTableContextBase::ThunkInfoVectorTy*
getThunkInfo(clang::GlobalDecl GD)
Declared at: clang/include/clang/AST/VTableBuilder.h:593
Parameters
¶unsigned int getVBTableIndex(
const clang::CXXRecordDecl* Derived,
const clang::CXXRecordDecl* VBase)
unsigned int getVBTableIndex(
const clang::CXXRecordDecl* Derived,
const clang::CXXRecordDecl* VBase)
Description
Returns the index of VBase in the vbtable of Derived. VBase must be a morally virtual base of Derived. The vbtable is an array of i32 offsets. The first entry is a self entry, and the rest are offsets from the vbptr to virtual bases.
Declared at: clang/include/clang/AST/VTableBuilder.h:605
Parameters
- const clang::CXXRecordDecl* Derived
- const clang::CXXRecordDecl* VBase
¶const clang::VPtrInfoVector& getVFPtrOffsets(
const clang::CXXRecordDecl* RD)
const clang::VPtrInfoVector& getVFPtrOffsets(
const clang::CXXRecordDecl* RD)
Declared at: clang/include/clang/AST/VTableBuilder.h:586
Parameters
- const clang::CXXRecordDecl* RD
¶const clang::VTableLayout& getVFTableLayout(
const clang::CXXRecordDecl* RD,
clang::CharUnits VFPtrOffset)
const clang::VTableLayout& getVFTableLayout(
const clang::CXXRecordDecl* RD,
clang::CharUnits VFPtrOffset)
Declared at: clang/include/clang/AST/VTableBuilder.h:588
Parameters
- const clang::CXXRecordDecl* RD
- clang::CharUnits VFPtrOffset
¶~MicrosoftVTableContext()
~MicrosoftVTableContext()
Declared at: clang/include/clang/AST/VTableBuilder.h:584