clang 20.0.0git
Public Member Functions | Static Public Member Functions | List of all members
clang::MicrosoftVTableContext Class Reference

#include "clang/AST/VTableBuilder.h"

Inheritance diagram for clang::MicrosoftVTableContext:
Inheritance graph
[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 ()
 
virtual const ThunkInfoVectorTygetThunkInfo (GlobalDecl GD)
 

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
virtual void computeVTableRelatedInformation (const CXXRecordDecl *RD)=0
 Compute and store all vtable related information (vtable layout, vbase offset offsets, thunks etc) for the given record decl.
 
 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.

◆ ~MicrosoftVTableContext()

MicrosoftVTableContext::~MicrosoftVTableContext ( )
override

Definition at line 3509 of file VTableBuilder.cpp.

Member Function Documentation

◆ classof()

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

Definition at line 637 of file VTableBuilder.h.

References clang::VTableContextBase::isMicrosoft().

◆ enumerateVBTables()

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

Definition at line 3849 of file VTableBuilder.cpp.

References clang::VirtualBaseInfo::VBPtrPaths.

◆ getMethodVFTableLocation()

MethodVFTableLocation MicrosoftVTableContext::getMethodVFTableLocation ( GlobalDecl  GD)

◆ 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 3841 of file VTableBuilder.cpp.

References clang::VirtualBaseInfo::VBTableIndices.

◆ getVFPtrOffsets()

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

Definition at line 3854 of file VTableBuilder.cpp.

◆ getVFTableLayout()

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

Definition at line 3862 of file VTableBuilder.cpp.


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