LLVM  8.0.1
Public Member Functions | List of all members
llvm::pdb::ClassLayout Class Reference

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

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

Public Member Functions

 ClassLayout (const PDBSymbolTypeUDT &UDT)
 
 ClassLayout (std::unique_ptr< PDBSymbolTypeUDT > UDT)
 
 ClassLayout (ClassLayout &&Other)=default
 
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)
 
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 163 of file UDTLayout.h.

Constructor & Destructor Documentation

◆ ClassLayout() [1/3]

ClassLayout::ClassLayout ( const PDBSymbolTypeUDT UDT)
explicit

◆ ClassLayout() [2/3]

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

Definition at line 143 of file UDTLayout.cpp.

◆ ClassLayout() [3/3]

llvm::pdb::ClassLayout::ClassLayout ( ClassLayout &&  Other)
default

Member Function Documentation

◆ getClass()

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

Definition at line 170 of file UDTLayout.h.

References llvm::pdb::LayoutItemBase::immediatePadding(), and llvm::pdb::UDT.

◆ immediatePadding()

uint32_t ClassLayout::immediatePadding ( ) const
overridevirtual

Reimplemented from llvm::pdb::LayoutItemBase.

Definition at line 148 of file UDTLayout.cpp.

References llvm::BitVector::count(), and llvm::pdb::LayoutItemBase::SizeOf.


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