clang
6.0.0
|
#include "clang/AST/VTableBuilder.h"
Classes | |
struct | MethodVFTableLocation |
Public Member Functions | |
MicrosoftVTableContext (ASTContext &Context) | |
~MicrosoftVTableContext () override | |
const VPtrInfoVector & | getVFPtrOffsets (const CXXRecordDecl *RD) |
const VTableLayout & | getVFTableLayout (const CXXRecordDecl *RD, CharUnits VFPtrOffset) |
const MethodVFTableLocation & | getMethodVFTableLocation (GlobalDecl GD) |
const ThunkInfoVectorTy * | getThunkInfo (GlobalDecl GD) override |
unsigned | getVBTableIndex (const CXXRecordDecl *Derived, const CXXRecordDecl *VBase) |
Returns the index of VBase in the vbtable of Derived. More... | |
const VPtrInfoVector & | enumerateVBTables (const CXXRecordDecl *RD) |
![]() | |
bool | isMicrosoft () const |
virtual | ~VTableContextBase () |
Static Public Member Functions | |
static bool | classof (const VTableContextBase *VT) |
Additional Inherited Members | |
![]() | |
typedef SmallVector< ThunkInfo, 1 > | ThunkInfoVectorTy |
![]() | |
bool | IsMicrosoftABI |
![]() | |
typedef llvm::DenseMap< const CXXMethodDecl *, ThunkInfoVectorTy > | ThunksMapTy |
![]() | |
VTableContextBase (bool MS) | |
![]() | |
ThunksMapTy | Thunks |
Contains all thunks that a given method decl will need. More... | |
Definition at line 482 of file VTableBuilder.h.
|
inline |
Definition at line 552 of file VTableBuilder.h.
|
override |
Definition at line 3371 of file VTableBuilder.cpp.
|
inlinestatic |
Definition at line 581 of file VTableBuilder.h.
References clang::VTableContextBase::isMicrosoft().
const VPtrInfoVector & MicrosoftVTableContext::enumerateVBTables | ( | const CXXRecordDecl * | RD | ) |
Definition at line 3698 of file VTableBuilder.cpp.
const MicrosoftVTableContext::MethodVFTableLocation & MicrosoftVTableContext::getMethodVFTableLocation | ( | GlobalDecl | GD | ) |
Definition at line 3721 of file VTableBuilder.cpp.
References clang::Dtor_Deleting, clang::GlobalDecl::getDecl(), and clang::GlobalDecl::getDtorType().
Referenced by mangleThunkThisAdjustment().
|
inlineoverridevirtual |
Reimplemented from clang::VTableContextBase.
Definition at line 564 of file VTableBuilder.h.
References clang::Dtor_Complete, clang::GlobalDecl::getDecl(), clang::GlobalDecl::getDtorType(), and clang::VTableContextBase::getThunkInfo().
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 3690 of file VTableBuilder.cpp.
References clang::VirtualBaseInfo::VBTableIndices.
Referenced by detectAmbiguousBases(), and emitCXXDestructor().
const VPtrInfoVector & MicrosoftVTableContext::getVFPtrOffsets | ( | const CXXRecordDecl * | RD | ) |
Definition at line 3703 of file VTableBuilder.cpp.
const VTableLayout & MicrosoftVTableContext::getVFTableLayout | ( | const CXXRecordDecl * | RD, |
CharUnits | VFPtrOffset | ||
) |
Definition at line 3711 of file VTableBuilder.cpp.
References clang::ast_matchers::id().