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

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

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

Public Member Functions

 ClassLayout (const PDBSymbolTypeUDT &UDT)
 ClassLayout (std::unique_ptr< PDBSymbolTypeUDT > UDT)
const PDBSymbolTypeUDTgetClass () const
uint32_t immediatePadding () const override
Public Member Functions inherited from llvm::pdb::UDTLayoutBase
 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
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

Additional Inherited Members

Protected Member Functions inherited from llvm::pdb::UDTLayoutBase
bool hasVBPtrAtOffset (uint32_t Off) const
void initializeChildren (const PDBSymbol &Sym)
void addChildToLayout (std::unique_ptr< LayoutItemBase > Child)
Protected Attributes inherited from llvm::pdb::UDTLayoutBase
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 169 of file UDTLayout.h.

Constructor & Destructor Documentation

◆ ClassLayout() [1/2]

◆ ClassLayout() [2/2]

ClassLayout::ClassLayout ( std::unique_ptr< PDBSymbolTypeUDT > UDT)
explicit

Definition at line 144 of file UDTLayout.cpp.

References ClassLayout().

Member Function Documentation

◆ getClass()

const PDBSymbolTypeUDT & llvm::pdb::ClassLayout::getClass ( ) const
inline

Definition at line 174 of file UDTLayout.h.

◆ immediatePadding()

uint32_t ClassLayout::immediatePadding ( ) const
overridevirtual

Reimplemented from llvm::pdb::LayoutItemBase.

Definition at line 149 of file UDTLayout.cpp.

References llvm::pdb::LayoutItemBase::SizeOf.


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