clang 22.0.0git
clang::MicrosoftVTableContext Class Reference

#include "clang/AST/VTableBuilder.h"

Inheritance diagram for clang::MicrosoftVTableContext:
[legend]

Public Member Functions

 MicrosoftVTableContext (ASTContext &Context)
 ~MicrosoftVTableContext () override
const VPtrInfoVectorgetVFPtrOffsets (const CXXRecordDecl *RD)
const VTableLayoutgetVFTableLayout (const CXXRecordDecl *RD, CharUnits VFPtrOffset)
MethodVFTableLocation getMethodVFTableLocation (GlobalDecl GD)
const ThunkInfoVectorTygetThunkInfo (GlobalDecl GD) override
unsigned getVBTableIndex (const CXXRecordDecl *Derived, const CXXRecordDecl *VBase)
 Returns the index of VBase in the vbtable of Derived.
const VPtrInfoVectorenumerateVBTables (const CXXRecordDecl *RD)
Public Member Functions inherited from clang::VTableContextBase
bool isMicrosoft () const
virtual ~VTableContextBase ()

Static Public Member Functions

static bool classof (const VTableContextBase *VT)
Static Public Member Functions inherited from clang::VTableContextBase
static bool hasVtableSlot (const CXXMethodDecl *MD)
 Determine whether this function should be assigned a vtable slot.

Additional Inherited Members

Public Types inherited from clang::VTableContextBase
typedef SmallVector< ThunkInfo, 1 > ThunkInfoVectorTy
Public Attributes inherited from clang::VTableContextBase
bool IsMicrosoftABI
Protected Types inherited from clang::VTableContextBase
typedef llvm::DenseMap< const CXXMethodDecl *, ThunkInfoVectorTyThunksMapTy
Protected Member Functions inherited from clang::VTableContextBase
 VTableContextBase (bool MS)
Protected Attributes inherited from clang::VTableContextBase
ThunksMapTy Thunks
 Contains all thunks that a given method decl will need.

Detailed Description

Definition at line 573 of file VTableBuilder.h.

Constructor & Destructor Documentation

◆ MicrosoftVTableContext()

clang::MicrosoftVTableContext::MicrosoftVTableContext ( ASTContext & Context)
inline

Definition at line 608 of file VTableBuilder.h.

References true, and clang::VTableContextBase::VTableContextBase().

◆ ~MicrosoftVTableContext()

MicrosoftVTableContext::~MicrosoftVTableContext ( )
override

Definition at line 3513 of file VTableBuilder.cpp.

Member Function Documentation

◆ classof()

bool clang::MicrosoftVTableContext::classof ( const VTableContextBase * VT)
inlinestatic

◆ enumerateVBTables()

const VPtrInfoVector & MicrosoftVTableContext::enumerateVBTables ( const CXXRecordDecl * RD)

Definition at line 3851 of file VTableBuilder.cpp.

◆ getMethodVFTableLocation()

◆ getThunkInfo()

const ThunkInfoVectorTy * clang::MicrosoftVTableContext::getThunkInfo ( GlobalDecl GD)
inlineoverridevirtual

◆ getVBTableIndex()

unsigned MicrosoftVTableContext::getVBTableIndex ( const CXXRecordDecl * Derived,
const CXXRecordDecl * VBase )

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.

Definition at line 3843 of file VTableBuilder.cpp.

References clang::VirtualBaseInfo::VBTableIndices.

◆ getVFPtrOffsets()

const VPtrInfoVector & MicrosoftVTableContext::getVFPtrOffsets ( const CXXRecordDecl * RD)

Definition at line 3856 of file VTableBuilder.cpp.

◆ getVFTableLayout()

const VTableLayout & MicrosoftVTableContext::getVFTableLayout ( const CXXRecordDecl * RD,
CharUnits VFPtrOffset )

Definition at line 3864 of file VTableBuilder.cpp.


The documentation for this class was generated from the following files: