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:

protected Thunks
public IsMicrosoftABI

Method Overview

Inherited from VTableContextBase:

Methods

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)

Declared at: clang/include/clang/AST/VTableBuilder.h:428

Parameters

const clang::VTableContextBase* VT

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)

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)

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::GlobalDecl GD

clang::ItaniumVTableContext::VTableComponentLayout
getVTableComponentLayout() const

Declared at: clang/include/clang/AST/VTableBuilder.h:432

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)

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

Declared at: clang/include/clang/AST/VTableBuilder.h:436

bool isRelativeLayout() const

Declared at: clang/include/clang/AST/VTableBuilder.h:437

~ItaniumVTableContext()

Declared at: clang/include/clang/AST/VTableBuilder.h:401