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
[legend]
Collaboration diagram for clang::MicrosoftVTableContext:
Collaboration graph
[legend]

Classes

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

Definition at line 552 of file VTableBuilder.h.

◆ ~MicrosoftVTableContext()

MicrosoftVTableContext::~MicrosoftVTableContext ( )
override

Definition at line 3376 of file VTableBuilder.cpp.

Member Function Documentation

◆ classof()

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

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