clang  9.0.0svn
Public Types | Public Member Functions | Static Public Member Functions | List of all members
clang::VTableComponent Class Reference

Represents a single component in a vtable. More...

#include "clang/AST/VTableBuilder.h"

Public Types

enum  Kind {
  CK_VCallOffset, CK_VBaseOffset, CK_OffsetToTop, CK_RTTI,
  CK_FunctionPointer, CK_CompleteDtorPointer, CK_DeletingDtorPointer, CK_UnusedFunctionPointer
}
 

Public Member Functions

 VTableComponent ()=default
 
Kind getKind () const
 Get the kind of this vtable component. More...
 
CharUnits getVCallOffset () const
 
CharUnits getVBaseOffset () const
 
CharUnits getOffsetToTop () const
 
const CXXRecordDeclgetRTTIDecl () const
 
const CXXMethodDeclgetFunctionDecl () const
 
const CXXDestructorDeclgetDestructorDecl () const
 
const CXXMethodDeclgetUnusedFunctionDecl () const
 
bool isDestructorKind () const
 
bool isUsedFunctionPointerKind () const
 
bool isFunctionPointerKind () const
 
bool isRTTIKind () const
 
GlobalDecl getGlobalDecl () const
 

Static Public Member Functions

static VTableComponent MakeVCallOffset (CharUnits Offset)
 
static VTableComponent MakeVBaseOffset (CharUnits Offset)
 
static VTableComponent MakeOffsetToTop (CharUnits Offset)
 
static VTableComponent MakeRTTI (const CXXRecordDecl *RD)
 
static VTableComponent MakeFunction (const CXXMethodDecl *MD)
 
static VTableComponent MakeCompleteDtor (const CXXDestructorDecl *DD)
 
static VTableComponent MakeDeletingDtor (const CXXDestructorDecl *DD)
 
static VTableComponent MakeUnusedFunction (const CXXMethodDecl *MD)
 

Detailed Description

Represents a single component in a vtable.

Definition at line 29 of file VTableBuilder.h.

Member Enumeration Documentation

◆ Kind

Enumerator
CK_VCallOffset 
CK_VBaseOffset 
CK_OffsetToTop 
CK_RTTI 
CK_FunctionPointer 
CK_CompleteDtorPointer 

A pointer to the complete destructor.

CK_DeletingDtorPointer 

A pointer to the deleting destructor.

CK_UnusedFunctionPointer 

An entry that is never used.

In some cases, a vtable function pointer will end up never being called. Such vtable function pointers are represented as a CK_UnusedFunctionPointer.

Definition at line 31 of file VTableBuilder.h.

Constructor & Destructor Documentation

◆ VTableComponent()

clang::VTableComponent::VTableComponent ( )
default

Member Function Documentation

◆ getDestructorDecl()

const CXXDestructorDecl* clang::VTableComponent::getDestructorDecl ( ) const
inline

Definition at line 130 of file VTableBuilder.h.

References isDestructorKind().

Referenced by getFunctionDecl().

◆ getFunctionDecl()

const CXXMethodDecl* clang::VTableComponent::getFunctionDecl ( ) const
inline

Definition at line 123 of file VTableBuilder.h.

References getDestructorDecl(), isDestructorKind(), and isFunctionPointerKind().

Referenced by getGlobalDecl().

◆ getGlobalDecl()

GlobalDecl clang::VTableComponent::getGlobalDecl ( ) const
inline

◆ getKind()

Kind clang::VTableComponent::getKind ( ) const
inline

◆ getOffsetToTop()

CharUnits clang::VTableComponent::getOffsetToTop ( ) const
inline

Definition at line 112 of file VTableBuilder.h.

References CK_OffsetToTop, and getKind().

◆ getRTTIDecl()

const CXXRecordDecl* clang::VTableComponent::getRTTIDecl ( ) const
inline

Definition at line 118 of file VTableBuilder.h.

References isRTTIKind().

◆ getUnusedFunctionDecl()

const CXXMethodDecl* clang::VTableComponent::getUnusedFunctionDecl ( ) const
inline

Definition at line 135 of file VTableBuilder.h.

References CK_UnusedFunctionPointer, and getKind().

◆ getVBaseOffset()

CharUnits clang::VTableComponent::getVBaseOffset ( ) const
inline

Definition at line 106 of file VTableBuilder.h.

References CK_VBaseOffset, and getKind().

◆ getVCallOffset()

CharUnits clang::VTableComponent::getVCallOffset ( ) const
inline

Definition at line 100 of file VTableBuilder.h.

References CK_VCallOffset, and getKind().

◆ isDestructorKind()

bool clang::VTableComponent::isDestructorKind ( ) const
inline

Definition at line 140 of file VTableBuilder.h.

References getKind(), and isDestructorKind().

Referenced by getDestructorDecl(), getFunctionDecl(), getGlobalDecl(), and isDestructorKind().

◆ isFunctionPointerKind()

bool clang::VTableComponent::isFunctionPointerKind ( ) const
inline

Definition at line 146 of file VTableBuilder.h.

References getKind().

Referenced by getFunctionDecl(), and getGlobalDecl().

◆ isRTTIKind()

bool clang::VTableComponent::isRTTIKind ( ) const
inline

Definition at line 150 of file VTableBuilder.h.

References getKind(), and isRTTIKind().

Referenced by getGlobalDecl(), getRTTIDecl(), and isRTTIKind().

◆ isUsedFunctionPointerKind()

bool clang::VTableComponent::isUsedFunctionPointerKind ( ) const
inline

Definition at line 142 of file VTableBuilder.h.

References getKind().

Referenced by getGlobalDecl().

◆ MakeCompleteDtor()

static VTableComponent clang::VTableComponent::MakeCompleteDtor ( const CXXDestructorDecl DD)
inlinestatic

Definition at line 78 of file VTableBuilder.h.

References CK_CompleteDtorPointer, and VTableComponent().

◆ MakeDeletingDtor()

static VTableComponent clang::VTableComponent::MakeDeletingDtor ( const CXXDestructorDecl DD)
inlinestatic

Definition at line 83 of file VTableBuilder.h.

References CK_DeletingDtorPointer, and VTableComponent().

◆ MakeFunction()

static VTableComponent clang::VTableComponent::MakeFunction ( const CXXMethodDecl MD)
inlinestatic

Definition at line 70 of file VTableBuilder.h.

References CK_FunctionPointer, and VTableComponent().

◆ MakeOffsetToTop()

static VTableComponent clang::VTableComponent::MakeOffsetToTop ( CharUnits  Offset)
inlinestatic

Definition at line 62 of file VTableBuilder.h.

References CK_OffsetToTop, and VTableComponent().

◆ MakeRTTI()

static VTableComponent clang::VTableComponent::MakeRTTI ( const CXXRecordDecl RD)
inlinestatic

Definition at line 66 of file VTableBuilder.h.

References CK_RTTI, and VTableComponent().

◆ MakeUnusedFunction()

static VTableComponent clang::VTableComponent::MakeUnusedFunction ( const CXXMethodDecl MD)
inlinestatic

Definition at line 88 of file VTableBuilder.h.

References CK_UnusedFunctionPointer, and VTableComponent().

◆ MakeVBaseOffset()

static VTableComponent clang::VTableComponent::MakeVBaseOffset ( CharUnits  Offset)
inlinestatic

Definition at line 58 of file VTableBuilder.h.

References CK_VBaseOffset, and VTableComponent().

◆ MakeVCallOffset()

static VTableComponent clang::VTableComponent::MakeVCallOffset ( CharUnits  Offset)
inlinestatic

Definition at line 54 of file VTableBuilder.h.

References CK_VCallOffset, and VTableComponent().


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