clang  6.0.0svn
Classes | 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
Collaboration diagram for clang::MicrosoftVTableContext:
Collaboration graph


struct  MethodVFTableLocation

Public Member Functions

 MicrosoftVTableContext (ASTContext &Context)
 ~MicrosoftVTableContext () override
const VPtrInfoVectorgetVFPtrOffsets (const CXXRecordDecl *RD)
const VTableLayoutgetVFTableLayout (const CXXRecordDecl *RD, CharUnits VFPtrOffset)
const MethodVFTableLocationgetMethodVFTableLocation (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. More...
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)

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. More...

Detailed Description

Definition at line 482 of file VTableBuilder.h.

Constructor & Destructor Documentation

◆ MicrosoftVTableContext()

clang::MicrosoftVTableContext::MicrosoftVTableContext ( ASTContext Context)

Definition at line 552 of file VTableBuilder.h.

◆ ~MicrosoftVTableContext()

MicrosoftVTableContext::~MicrosoftVTableContext ( )

Definition at line 3376 of file VTableBuilder.cpp.

Member Function Documentation

◆ classof()

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

Definition at line 581 of file VTableBuilder.h.

References clang::VTableContextBase::isMicrosoft().

◆ enumerateVBTables()

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

Definition at line 3703 of file VTableBuilder.cpp.

◆ getMethodVFTableLocation()

const MicrosoftVTableContext::MethodVFTableLocation & MicrosoftVTableContext::getMethodVFTableLocation ( GlobalDecl  GD)

◆ getThunkInfo()

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

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

References clang::VirtualBaseInfo::VBTableIndices.

Referenced by detectAmbiguousBases(), and emitCXXDestructor().

◆ getVFPtrOffsets()

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

Definition at line 3708 of file VTableBuilder.cpp.

◆ getVFTableLayout()

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

Definition at line 3716 of file VTableBuilder.cpp.

References clang::ast_matchers::id().

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