class VTableComponent

Declaration

class VTableComponent { /* full declaration omitted */ };

Description

Represents a single component in a vtable.

Declared at: clang/include/clang/AST/VTableBuilder.h:30

Member Variables

private int64_t Value
The kind is stored in the lower 3 bits of the value. For offsets, we make use of the facts that classes can't be larger than 2^55 bytes, so we store the offset in the lower part of the 61 bits that remain. (The reason that we're not simply using a PointerIntPair here is that we need the offsets to be 64-bit, even when on a 32-bit machine).

Method Overview

Methods

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

Declared at: clang/include/clang/AST/VTableBuilder.h:79

Parameters

const clang::CXXDestructorDecl* DD

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

Declared at: clang/include/clang/AST/VTableBuilder.h:84

Parameters

const clang::CXXDestructorDecl* DD

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

Declared at: clang/include/clang/AST/VTableBuilder.h:71

Parameters

const clang::CXXMethodDecl* MD

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

Declared at: clang/include/clang/AST/VTableBuilder.h:63

Parameters

clang::CharUnits Offset

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

Declared at: clang/include/clang/AST/VTableBuilder.h:67

Parameters

const clang::CXXRecordDecl* RD

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

Declared at: clang/include/clang/AST/VTableBuilder.h:89

Parameters

const clang::CXXMethodDecl* MD

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

Declared at: clang/include/clang/AST/VTableBuilder.h:59

Parameters

clang::CharUnits Offset

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

Declared at: clang/include/clang/AST/VTableBuilder.h:55

Parameters

clang::CharUnits Offset

VTableComponent(
    clang::VTableComponent::Kind ComponentKind,
    uintptr_t Ptr)

Declared at: clang/include/clang/AST/VTableBuilder.h:202

Parameters

clang::VTableComponent::Kind ComponentKind
uintptr_t Ptr

VTableComponent(
    clang::VTableComponent::Kind ComponentKind,
    clang::CharUnits Offset)

Declared at: clang/include/clang/AST/VTableBuilder.h:192

Parameters

clang::VTableComponent::Kind ComponentKind
clang::CharUnits Offset

VTableComponent()

Declared at: clang/include/clang/AST/VTableBuilder.h:53

const clang::CXXDestructorDecl*
getDestructorDecl() const

Declared at: clang/include/clang/AST/VTableBuilder.h:131

const clang::CXXMethodDecl* getFunctionDecl()
    const

Declared at: clang/include/clang/AST/VTableBuilder.h:124

clang::GlobalDecl getGlobalDecl() const

Declared at: clang/include/clang/AST/VTableBuilder.h:153

clang::VTableComponent::Kind getKind() const

Description

Get the kind of this vtable component.

Declared at: clang/include/clang/AST/VTableBuilder.h:97

clang::CharUnits getOffset() const

Declared at: clang/include/clang/AST/VTableBuilder.h:211

clang::CharUnits getOffsetToTop() const

Declared at: clang/include/clang/AST/VTableBuilder.h:113

uintptr_t getPointer() const

Declared at: clang/include/clang/AST/VTableBuilder.h:218

const clang::CXXRecordDecl* getRTTIDecl() const

Declared at: clang/include/clang/AST/VTableBuilder.h:119

const clang::CXXMethodDecl*
getUnusedFunctionDecl() const

Declared at: clang/include/clang/AST/VTableBuilder.h:136

clang::CharUnits getVBaseOffset() const

Declared at: clang/include/clang/AST/VTableBuilder.h:107

clang::CharUnits getVCallOffset() const

Declared at: clang/include/clang/AST/VTableBuilder.h:101

bool isDestructorKind() const

Declared at: clang/include/clang/AST/VTableBuilder.h:141

static bool isDestructorKind(
    clang::VTableComponent::Kind ComponentKind)

Declared at: clang/include/clang/AST/VTableBuilder.h:184

Parameters

clang::VTableComponent::Kind ComponentKind

bool isFunctionPointerKind() const

Declared at: clang/include/clang/AST/VTableBuilder.h:147

static bool isFunctionPointerKind(
    clang::VTableComponent::Kind ComponentKind)

Declared at: clang/include/clang/AST/VTableBuilder.h:176

Parameters

clang::VTableComponent::Kind ComponentKind

bool isRTTIKind() const

Declared at: clang/include/clang/AST/VTableBuilder.h:151

static bool isRTTIKind(
    clang::VTableComponent::Kind ComponentKind)

Declared at: clang/include/clang/AST/VTableBuilder.h:188

Parameters

clang::VTableComponent::Kind ComponentKind

bool isUsedFunctionPointerKind() const

Declared at: clang/include/clang/AST/VTableBuilder.h:143

static bool isUsedFunctionPointerKind(
    clang::VTableComponent::Kind ComponentKind)

Declared at: clang/include/clang/AST/VTableBuilder.h:180

Parameters

clang::VTableComponent::Kind ComponentKind