class ItaniumVTableContext
Declaration
class ItaniumVTableContext : public VTableContextBase { /* full declaration omitted */ };
Declared at: clang/include/clang/AST/VTableBuilder.h:363
Inherits from: VTableContextBase
Member Variables
- private clang::ItaniumVTableContext::MethodVTableIndicesTy MethodVTableIndices
- private clang::ItaniumVTableContext::VTableLayoutMapTy VTableLayouts
- private clang::ItaniumVTableContext:: VirtualBaseClassOffsetOffsetsMapTy VirtualBaseClassOffsetOffsets
- private clang::ItaniumVTableContext::VTableComponentLayout ComponentLayout
Inherited from VTableContextBase:
Method Overview
- public ItaniumVTableContext(clang::ASTContext & Context, clang::ItaniumVTableContext::VTableComponentLayout ComponentLayout = Pointer)
- public static bool classof(const clang::VTableContextBase * VT)
- private void computeVTableRelatedInformation(const clang::CXXRecordDecl * RD)
- public std::unique_ptr<VTableLayout> createConstructionVTableLayout(const clang::CXXRecordDecl * MostDerivedClass, clang::CharUnits MostDerivedClassOffset, bool MostDerivedClassIsVirtual, const clang::CXXRecordDecl * LayoutClass)
- public uint64_t getMethodVTableIndex(clang::GlobalDecl GD)
- public clang::ItaniumVTableContext::VTableComponentLayout getVTableComponentLayout() const
- public const clang::VTableLayout & getVTableLayout(const clang::CXXRecordDecl * RD)
- public clang::CharUnits getVirtualBaseOffsetOffset(const clang::CXXRecordDecl * RD, const clang::CXXRecordDecl * VBase)
- public bool isPointerLayout() const
- public bool isRelativeLayout() const
- public ~ItaniumVTableContext()
Inherited from VTableContextBase:
Methods
¶ItaniumVTableContext(
clang::ASTContext& Context,
clang::ItaniumVTableContext::
VTableComponentLayout ComponentLayout =
Pointer)
ItaniumVTableContext(
clang::ASTContext& Context,
clang::ItaniumVTableContext::
VTableComponentLayout ComponentLayout =
Pointer)
Declared at: clang/include/clang/AST/VTableBuilder.h:399
Parameters
- clang::ASTContext& Context
- clang::ItaniumVTableContext::VTableComponentLayout ComponentLayout = Pointer
¶static bool classof(
const clang::VTableContextBase* VT)
static bool classof(
const clang::VTableContextBase* VT)
Declared at: clang/include/clang/AST/VTableBuilder.h:428
Parameters
- const clang::VTableContextBase* VT
¶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:387
Parameters
- const clang::CXXRecordDecl* RD
¶std::unique_ptr<VTableLayout>
createConstructionVTableLayout(
const clang::CXXRecordDecl* MostDerivedClass,
clang::CharUnits MostDerivedClassOffset,
bool MostDerivedClassIsVirtual,
const clang::CXXRecordDecl* LayoutClass)
std::unique_ptr<VTableLayout>
createConstructionVTableLayout(
const clang::CXXRecordDecl* MostDerivedClass,
clang::CharUnits MostDerivedClassOffset,
bool MostDerivedClassIsVirtual,
const clang::CXXRecordDecl* LayoutClass)
Declared at: clang/include/clang/AST/VTableBuilder.h:410
Parameters
- const clang::CXXRecordDecl* MostDerivedClass
- clang::CharUnits MostDerivedClassOffset
- bool MostDerivedClassIsVirtual
- const clang::CXXRecordDecl* LayoutClass
¶uint64_t getMethodVTableIndex(
clang::GlobalDecl GD)
uint64_t getMethodVTableIndex(
clang::GlobalDecl GD)
Description
Locate a virtual function in the vtable. Return the index (relative to the vtable address point) where the function pointer for the given virtual function is stored.
Declared at: clang/include/clang/AST/VTableBuilder.h:418
Parameters
¶clang::ItaniumVTableContext::VTableComponentLayout
getVTableComponentLayout() const
clang::ItaniumVTableContext::VTableComponentLayout
getVTableComponentLayout() const
Declared at: clang/include/clang/AST/VTableBuilder.h:432
¶const clang::VTableLayout& getVTableLayout(
const clang::CXXRecordDecl* RD)
const clang::VTableLayout& getVTableLayout(
const clang::CXXRecordDecl* RD)
Declared at: clang/include/clang/AST/VTableBuilder.h:403
Parameters
- const clang::CXXRecordDecl* RD
¶clang::CharUnits getVirtualBaseOffsetOffset(
const clang::CXXRecordDecl* RD,
const clang::CXXRecordDecl* VBase)
clang::CharUnits getVirtualBaseOffsetOffset(
const clang::CXXRecordDecl* RD,
const clang::CXXRecordDecl* VBase)
Description
Return the offset in chars (relative to the vtable address point) where the offset of the virtual base that contains the given base is stored, otherwise, if no virtual base contains the given class, return 0. Base must be a virtual base class or an unambiguous base.
Declared at: clang/include/clang/AST/VTableBuilder.h:425
Parameters
- const clang::CXXRecordDecl* RD
- const clang::CXXRecordDecl* VBase
¶bool isPointerLayout() const
bool isPointerLayout() const
Declared at: clang/include/clang/AST/VTableBuilder.h:436
¶bool isRelativeLayout() const
bool isRelativeLayout() const
Declared at: clang/include/clang/AST/VTableBuilder.h:437
¶~ItaniumVTableContext()
~ItaniumVTableContext()
Declared at: clang/include/clang/AST/VTableBuilder.h:401