LLVM 22.0.0git
llvm::pdb::UDTLayoutBase Class Reference

#include "llvm/DebugInfo/PDB/UDTLayout.h"

Inheritance diagram for llvm::pdb::UDTLayoutBase:
[legend]

Public Member Functions

 UDTLayoutBase (const UDTLayoutBase *Parent, const PDBSymbol &Sym, const std::string &Name, uint32_t OffsetInParent, uint32_t Size, bool IsElided)
 UDTLayoutBase (UDTLayoutBase const &)=delete
UDTLayoutBaseoperator= (UDTLayoutBase const &)=delete
uint32_t tailPadding () const override
ArrayRef< LayoutItemBase * > layout_items () const
ArrayRef< BaseClassLayout * > bases () const
ArrayRef< BaseClassLayout * > regular_bases () const
ArrayRef< BaseClassLayout * > virtual_bases () const
uint32_t directVirtualBaseCount () const
ArrayRef< std::unique_ptr< PDBSymbolFunc > > funcs () const
ArrayRef< std::unique_ptr< PDBSymbol > > other_items () const
Public Member Functions inherited from llvm::pdb::LayoutItemBase
 LayoutItemBase (const UDTLayoutBase *Parent, const PDBSymbol *Symbol, const std::string &Name, uint32_t OffsetInParent, uint32_t Size, bool IsElided)
virtual ~LayoutItemBase ()=default
uint32_t deepPaddingSize () const
virtual uint32_t immediatePadding () const
const UDTLayoutBasegetParent () const
StringRef getName () const
uint32_t getOffsetInParent () const
uint32_t getSize () const
uint32_t getLayoutSize () const
const PDBSymbolgetSymbol () const
const BitVectorusedBytes () const
bool isElided () const
virtual bool isVBPtr () const
uint32_t containsOffset (uint32_t Off) const

Protected Member Functions

bool hasVBPtrAtOffset (uint32_t Off) const
void initializeChildren (const PDBSymbol &Sym)
void addChildToLayout (std::unique_ptr< LayoutItemBase > Child)

Protected Attributes

uint32_t DirectVBaseCount = 0
UniquePtrVector< PDBSymbolOther
UniquePtrVector< PDBSymbolFuncFuncs
UniquePtrVector< LayoutItemBaseChildStorage
std::vector< LayoutItemBase * > LayoutItems
std::vector< BaseClassLayout * > AllBases
ArrayRef< BaseClassLayout * > NonVirtualBases
ArrayRef< BaseClassLayout * > VirtualBases
VTableLayoutItemVTable = nullptr
VBPtrLayoutItemVBPtr = nullptr
Protected Attributes inherited from llvm::pdb::LayoutItemBase
const PDBSymbolSymbol = nullptr
const UDTLayoutBaseParent = nullptr
BitVector UsedBytes
std::string Name
uint32_t OffsetInParent = 0
uint32_t SizeOf = 0
uint32_t LayoutSize = 0
bool IsElided = false

Detailed Description

Definition at line 112 of file UDTLayout.h.

Constructor & Destructor Documentation

◆ UDTLayoutBase() [1/2]

◆ UDTLayoutBase() [2/2]

llvm::pdb::UDTLayoutBase::UDTLayoutBase ( UDTLayoutBase const & )
delete

References UDTLayoutBase().

Member Function Documentation

◆ addChildToLayout()

◆ bases()

ArrayRef< BaseClassLayout * > llvm::pdb::UDTLayoutBase::bases ( ) const
inline

Definition at line 126 of file UDTLayout.h.

References AllBases.

◆ directVirtualBaseCount()

uint32_t llvm::pdb::UDTLayoutBase::directVirtualBaseCount ( ) const
inline

Definition at line 129 of file UDTLayout.h.

References DirectVBaseCount.

◆ funcs()

ArrayRef< std::unique_ptr< PDBSymbolFunc > > llvm::pdb::UDTLayoutBase::funcs ( ) const
inline

Definition at line 130 of file UDTLayout.h.

References Funcs.

◆ hasVBPtrAtOffset()

bool UDTLayoutBase::hasVBPtrAtOffset ( uint32_t Off) const
protected

Definition at line 269 of file UDTLayout.cpp.

References AllBases, and VBPtr.

Referenced by initializeChildren().

◆ initializeChildren()

◆ layout_items()

ArrayRef< LayoutItemBase * > llvm::pdb::UDTLayoutBase::layout_items ( ) const
inline

Definition at line 125 of file UDTLayout.h.

References LayoutItems.

◆ operator=()

UDTLayoutBase & llvm::pdb::UDTLayoutBase::operator= ( UDTLayoutBase const & )
delete

References tailPadding(), and UDTLayoutBase().

◆ other_items()

ArrayRef< std::unique_ptr< PDBSymbol > > llvm::pdb::UDTLayoutBase::other_items ( ) const
inline

Definition at line 131 of file UDTLayout.h.

References Other.

◆ regular_bases()

ArrayRef< BaseClassLayout * > llvm::pdb::UDTLayoutBase::regular_bases ( ) const
inline

Definition at line 127 of file UDTLayout.h.

References NonVirtualBases.

◆ tailPadding()

uint32_t UDTLayoutBase::tailPadding ( ) const
overridevirtual

◆ virtual_bases()

ArrayRef< BaseClassLayout * > llvm::pdb::UDTLayoutBase::virtual_bases ( ) const
inline

Definition at line 128 of file UDTLayout.h.

References VirtualBases.

Member Data Documentation

◆ AllBases

std::vector<BaseClassLayout *> llvm::pdb::UDTLayoutBase::AllBases
protected

Definition at line 146 of file UDTLayout.h.

Referenced by bases(), hasVBPtrAtOffset(), and initializeChildren().

◆ ChildStorage

UniquePtrVector<LayoutItemBase> llvm::pdb::UDTLayoutBase::ChildStorage
protected

Definition at line 143 of file UDTLayout.h.

Referenced by addChildToLayout().

◆ DirectVBaseCount

uint32_t llvm::pdb::UDTLayoutBase::DirectVBaseCount = 0
protected

Definition at line 139 of file UDTLayout.h.

Referenced by directVirtualBaseCount().

◆ Funcs

UniquePtrVector<PDBSymbolFunc> llvm::pdb::UDTLayoutBase::Funcs
protected

Definition at line 142 of file UDTLayout.h.

Referenced by funcs(), and initializeChildren().

◆ LayoutItems

std::vector<LayoutItemBase *> llvm::pdb::UDTLayoutBase::LayoutItems
protected

◆ NonVirtualBases

ArrayRef<BaseClassLayout *> llvm::pdb::UDTLayoutBase::NonVirtualBases
protected

Definition at line 147 of file UDTLayout.h.

Referenced by initializeChildren(), and regular_bases().

◆ Other

UniquePtrVector<PDBSymbol> llvm::pdb::UDTLayoutBase::Other
protected

Definition at line 141 of file UDTLayout.h.

Referenced by initializeChildren(), and other_items().

◆ VBPtr

VBPtrLayoutItem* llvm::pdb::UDTLayoutBase::VBPtr = nullptr
protected

Definition at line 151 of file UDTLayout.h.

Referenced by hasVBPtrAtOffset(), and initializeChildren().

◆ VirtualBases

ArrayRef<BaseClassLayout *> llvm::pdb::UDTLayoutBase::VirtualBases
protected

Definition at line 148 of file UDTLayout.h.

Referenced by initializeChildren(), and virtual_bases().

◆ VTable

VTableLayoutItem* llvm::pdb::UDTLayoutBase::VTable = nullptr
protected

Definition at line 150 of file UDTLayout.h.

Referenced by initializeChildren().


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