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:

protected Thunks
public IsMicrosoftABI

Method Overview

Inherited from VTableContextBase:

Methods

MicrosoftVTableContext(clang::ASTContext& Context)

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

Parameters

clang::ASTContext& Context

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)

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)

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)

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&)

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)

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

Parameters

const clang::CXXRecordDecl* RD

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)

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

Parameters

clang::GlobalDecl GD

const clang::VTableContextBase::ThunkInfoVectorTy*
getThunkInfo(clang::GlobalDecl GD)

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

Parameters

clang::GlobalDecl GD

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)

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)

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

Parameters

const clang::CXXRecordDecl* RD
clang::CharUnits VFPtrOffset

~MicrosoftVTableContext()

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