LLVM 19.0.0git
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
llvm::pdb::UDTLayoutBase Class Reference

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

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

Public Member Functions

 UDTLayoutBase (const UDTLayoutBase *Parent, const PDBSymbol &Sym, const std::string &Name, uint32_t OffsetInParent, uint32_t Size, bool IsElided)
 
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
 
virtual uint32_t tailPadding () 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 109 of file UDTLayout.h.

Constructor & Destructor Documentation

◆ UDTLayoutBase()

UDTLayoutBase::UDTLayoutBase ( const UDTLayoutBase Parent,
const PDBSymbol Sym,
const std::string &  Name,
uint32_t  OffsetInParent,
uint32_t  Size,
bool  IsElided 
)

Member Function Documentation

◆ addChildToLayout()

void UDTLayoutBase::addChildToLayout ( std::unique_ptr< LayoutItemBase Child)
protected

◆ bases()

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

Definition at line 119 of file UDTLayout.h.

References AllBases.

◆ directVirtualBaseCount()

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

Definition at line 122 of file UDTLayout.h.

References DirectVBaseCount.

◆ funcs()

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

Definition at line 123 of file UDTLayout.h.

References Funcs.

◆ hasVBPtrAtOffset()

bool UDTLayoutBase::hasVBPtrAtOffset ( uint32_t  Off) const
protected

Definition at line 270 of file UDTLayout.cpp.

References AllBases, llvm::pdb::LayoutItemBase::getOffsetInParent(), and VBPtr.

Referenced by initializeChildren().

◆ initializeChildren()

void UDTLayoutBase::initializeChildren ( const PDBSymbol Sym)
protected

◆ layout_items()

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

Definition at line 118 of file UDTLayout.h.

References LayoutItems.

◆ other_items()

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

Definition at line 124 of file UDTLayout.h.

References Other.

◆ regular_bases()

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

Definition at line 120 of file UDTLayout.h.

References NonVirtualBases.

◆ tailPadding()

uint32_t UDTLayoutBase::tailPadding ( ) const
overridevirtual

Reimplemented from llvm::pdb::LayoutItemBase.

Definition at line 120 of file UDTLayout.cpp.

References LayoutItems, and llvm::pdb::LayoutItemBase::tailPadding().

◆ virtual_bases()

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

Definition at line 121 of file UDTLayout.h.

References VirtualBases.

Member Data Documentation

◆ AllBases

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

Definition at line 139 of file UDTLayout.h.

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

◆ ChildStorage

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

Definition at line 136 of file UDTLayout.h.

Referenced by addChildToLayout().

◆ DirectVBaseCount

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

Definition at line 132 of file UDTLayout.h.

Referenced by directVirtualBaseCount().

◆ Funcs

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

Definition at line 135 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 140 of file UDTLayout.h.

Referenced by initializeChildren(), and regular_bases().

◆ Other

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

Definition at line 134 of file UDTLayout.h.

Referenced by initializeChildren(), and other_items().

◆ VBPtr

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

Definition at line 144 of file UDTLayout.h.

Referenced by hasVBPtrAtOffset(), and initializeChildren().

◆ VirtualBases

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

Definition at line 141 of file UDTLayout.h.

Referenced by initializeChildren(), and virtual_bases().

◆ VTable

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

Definition at line 143 of file UDTLayout.h.

Referenced by initializeChildren().


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