class VTTBuilder
Declaration
class VTTBuilder { /* full declaration omitted */ };
Description
Class for building VTT layout information.
Declared at: clang/include/clang/AST/VTTBuilder.h:71
Member Variables
- private clang::ASTContext& Ctx
- private const clang::CXXRecordDecl* MostDerivedClass
- The most derived class for which we're building this vtable.
- private clang::VTTBuilder::VTTVTablesVectorTy VTTVTables
- The VTT vtables.
- private clang::VTTBuilder::VTTComponentsVectorTy VTTComponents
- The VTT components.
- private const clang::ASTRecordLayout& MostDerivedClassLayout
- The AST record layout of the most derived class.
- private llvm::DenseMap<BaseSubobject, uint64_t> SubVTTIndicies
- The sub-VTT indices for the bases of the most derived class.
- private llvm::DenseMap<BaseSubobject, uint64_t> SecondaryVirtualPointerIndices
- The secondary virtual pointer indices of all subobjects of the most derived class.
- private bool GenerateDefinition
- Whether the VTT builder should generate LLVM IR for the VTT.
Method Overview
- private void AddVTablePointer(clang::BaseSubobject Base, uint64_t VTableIndex, const clang::CXXRecordDecl * VTableClass)
- private void LayoutSecondaryVTTs(clang::BaseSubobject Base)
- private void LayoutSecondaryVirtualPointers(clang::BaseSubobject Base, bool BaseIsMorallyVirtual, uint64_t VTableIndex, const clang::CXXRecordDecl * VTableClass, clang::VTTBuilder::VisitedVirtualBasesSetTy & VBases)
- private void LayoutSecondaryVirtualPointers(clang::BaseSubobject Base, uint64_t VTableIndex)
- private void LayoutVTT(clang::BaseSubobject Base, bool BaseIsVirtual)
- private void LayoutVirtualVTTs(const clang::CXXRecordDecl * RD, clang::VTTBuilder::VisitedVirtualBasesSetTy & VBases)
- public VTTBuilder(clang::ASTContext & Ctx, const clang::CXXRecordDecl * MostDerivedClass, bool GenerateDefinition)
- public const llvm::DenseMap<BaseSubobject, uint64_t> & getSecondaryVirtualPointerIndices() const
- public const llvm::DenseMap<BaseSubobject, uint64_t> & getSubVTTIndicies() const
- public const clang::VTTBuilder::VTTComponentsVectorTy & getVTTComponents() const
- public const clang::VTTBuilder::VTTVTablesVectorTy & getVTTVTables() const
Methods
¶void AddVTablePointer(
clang::BaseSubobject Base,
uint64_t VTableIndex,
const clang::CXXRecordDecl* VTableClass)
void AddVTablePointer(
clang::BaseSubobject Base,
uint64_t VTableIndex,
const clang::CXXRecordDecl* VTableClass)
Description
Add a vtable pointer to the VTT currently being built.
Declared at: clang/include/clang/AST/VTTBuilder.h:105
Parameters
- clang::BaseSubobject Base
- uint64_t VTableIndex
- const clang::CXXRecordDecl* VTableClass
¶void LayoutSecondaryVTTs(
clang::BaseSubobject Base)
void LayoutSecondaryVTTs(
clang::BaseSubobject Base)
Description
Lay out the secondary VTTs of the given base subobject.
Declared at: clang/include/clang/AST/VTTBuilder.h:109
Parameters
- clang::BaseSubobject Base
¶void LayoutSecondaryVirtualPointers(
clang::BaseSubobject Base,
bool BaseIsMorallyVirtual,
uint64_t VTableIndex,
const clang::CXXRecordDecl* VTableClass,
clang::VTTBuilder::VisitedVirtualBasesSetTy&
VBases)
void LayoutSecondaryVirtualPointers(
clang::BaseSubobject Base,
bool BaseIsMorallyVirtual,
uint64_t VTableIndex,
const clang::CXXRecordDecl* VTableClass,
clang::VTTBuilder::VisitedVirtualBasesSetTy&
VBases)
Description
Lay out the secondary virtual pointers for the given base subobject.
Declared at: clang/include/clang/AST/VTTBuilder.h:116
Parameters
- clang::BaseSubobject Base
- bool BaseIsMorallyVirtual
- whether the base subobject is a virtual base or a direct or indirect base of a virtual base.
- uint64_t VTableIndex
- const clang::CXXRecordDecl* VTableClass
- clang::VTTBuilder::VisitedVirtualBasesSetTy& VBases
¶void LayoutSecondaryVirtualPointers(
clang::BaseSubobject Base,
uint64_t VTableIndex)
void LayoutSecondaryVirtualPointers(
clang::BaseSubobject Base,
uint64_t VTableIndex)
Description
Lay out the secondary virtual pointers for the given base subobject.
Declared at: clang/include/clang/AST/VTTBuilder.h:124
Parameters
- clang::BaseSubobject Base
- uint64_t VTableIndex
¶void LayoutVTT(clang::BaseSubobject Base,
bool BaseIsVirtual)
void LayoutVTT(clang::BaseSubobject Base,
bool BaseIsVirtual)
Description
Lay out the VTT for the given subobject, including any secondary VTTs, secondary virtual pointers and virtual VTTs.
Declared at: clang/include/clang/AST/VTTBuilder.h:134
Parameters
- clang::BaseSubobject Base
- bool BaseIsVirtual
¶void LayoutVirtualVTTs(
const clang::CXXRecordDecl* RD,
clang::VTTBuilder::VisitedVirtualBasesSetTy&
VBases)
void LayoutVirtualVTTs(
const clang::CXXRecordDecl* RD,
clang::VTTBuilder::VisitedVirtualBasesSetTy&
VBases)
Description
Lay out the VTTs for the virtual base classes of the given record declaration.
Declared at: clang/include/clang/AST/VTTBuilder.h:129
Parameters
- const clang::CXXRecordDecl* RD
- clang::VTTBuilder::VisitedVirtualBasesSetTy& VBases
¶VTTBuilder(
clang::ASTContext& Ctx,
const clang::CXXRecordDecl* MostDerivedClass,
bool GenerateDefinition)
VTTBuilder(
clang::ASTContext& Ctx,
const clang::CXXRecordDecl* MostDerivedClass,
bool GenerateDefinition)
Declared at: clang/include/clang/AST/VTTBuilder.h:137
Parameters
- clang::ASTContext& Ctx
- const clang::CXXRecordDecl* MostDerivedClass
- bool GenerateDefinition
¶const llvm::DenseMap<BaseSubobject, uint64_t>&
getSecondaryVirtualPointerIndices() const
const llvm::DenseMap<BaseSubobject, uint64_t>&
getSecondaryVirtualPointerIndices() const
Description
Returns a reference to the secondary virtual pointer indices.
Declared at: clang/include/clang/AST/VTTBuilder.h:157
¶const llvm::DenseMap<BaseSubobject, uint64_t>&
getSubVTTIndicies() const
const llvm::DenseMap<BaseSubobject, uint64_t>&
getSubVTTIndicies() const
Description
Returns a reference to the sub-VTT indices.
Declared at: clang/include/clang/AST/VTTBuilder.h:151
¶const clang::VTTBuilder::VTTComponentsVectorTy&
getVTTComponents() const
const clang::VTTBuilder::VTTComponentsVectorTy&
getVTTComponents() const
Declared at: clang/include/clang/AST/VTTBuilder.h:141
¶const clang::VTTBuilder::VTTVTablesVectorTy&
getVTTVTables() const
const clang::VTTBuilder::VTTVTablesVectorTy&
getVTTVTables() const
Declared at: clang/include/clang/AST/VTTBuilder.h:146