LLVM 19.0.0git
Classes | Namespaces | Macros | Typedefs | Enumerations
PDBTypes.h File Reference
#include "llvm/ADT/APFloat.h"
#include "llvm/DebugInfo/CodeView/CodeView.h"
#include "llvm/DebugInfo/PDB/IPDBEnumChildren.h"
#include "llvm/DebugInfo/PDB/IPDBFrameData.h"
#include "llvm/DebugInfo/PDB/Native/RawTypes.h"
#include <cctype>
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <functional>

Go to the source code of this file.

Classes

struct  llvm::pdb::PDB_SourceCompression
 
struct  llvm::pdb::VersionInfo
 
struct  llvm::pdb::Variant
 
struct  std::hash< llvm::pdb::PDB_SymType >
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 
namespace  llvm::pdb
 
namespace  std
 Implement std::hash so that hash_code can be used in STL containers.
 

Macros

#define VARIANT_WIDTH(Enum, NumBits)
 
#define VARIANT_APSINT(Enum, NumBits, IsUnsigned)
 
#define VARIANT_EQUAL_CASE(Enum)
 

Typedefs

typedef uint32_t llvm::pdb::SymIndexId
 
using llvm::pdb::IPDBEnumSymbols = IPDBEnumChildren< PDBSymbol >
 
using llvm::pdb::IPDBEnumSourceFiles = IPDBEnumChildren< IPDBSourceFile >
 
using llvm::pdb::IPDBEnumDataStreams = IPDBEnumChildren< IPDBDataStream >
 
using llvm::pdb::IPDBEnumLineNumbers = IPDBEnumChildren< IPDBLineNumber >
 
using llvm::pdb::IPDBEnumTables = IPDBEnumChildren< IPDBTable >
 
using llvm::pdb::IPDBEnumInjectedSources = IPDBEnumChildren< IPDBInjectedSource >
 
using llvm::pdb::IPDBEnumSectionContribs = IPDBEnumChildren< IPDBSectionContrib >
 
using llvm::pdb::IPDBEnumFrameData = IPDBEnumChildren< IPDBFrameData >
 
using llvm::pdb::PDB_Cpu = codeview::CPUType
 These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx.
 
using llvm::pdb::PDB_CallingConv = codeview::CallingConvention
 These values correspond to the CV_call_e enumeration, and are documented at the following locations: https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx https://msdn.microsoft.com/en-us/library/windows/desktop/ms680207(v=vs.85).aspx.
 
using llvm::pdb::PDB_Lang = codeview::SourceLanguage
 These values correspond to the CV_CFL_LANG enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bw3aekw6.aspx.
 

Enumerations

enum class  llvm::pdb::PDB_ReaderType { llvm::pdb::DIA = 0 , llvm::pdb::Native = 1 }
 Specifies which PDB reader implementation is to be used. More...
 
enum class  llvm::pdb::PDB_TableType {
  llvm::pdb::TableInvalid = 0 , llvm::pdb::Symbols , llvm::pdb::SourceFiles , llvm::pdb::LineNumbers ,
  llvm::pdb::SectionContribs , llvm::pdb::Segments , llvm::pdb::InjectedSources , llvm::pdb::FrameData ,
  llvm::pdb::InputAssemblyFiles , llvm::pdb::Dbg
}
 An enumeration indicating the type of data contained in this table. More...
 
enum  llvm::pdb::PDB_NameSearchFlags {
  llvm::pdb::NS_Default = 0x0 , llvm::pdb::NS_CaseSensitive = 0x1 , llvm::pdb::NS_CaseInsensitive = 0x2 , llvm::pdb::NS_FileNameExtMatch = 0x4 ,
  llvm::pdb::NS_Regex = 0x8 , llvm::pdb::NS_UndecoratedName = 0x10 , llvm::pdb::NS_CaseInFileNameExt = NS_CaseInsensitive | NS_FileNameExtMatch , llvm::pdb::NS_CaseRegex = NS_Regex | NS_CaseSensitive ,
  llvm::pdb::NS_CaseInRex = NS_Regex | NS_CaseInsensitive
}
 Defines flags used for enumerating child symbols. More...
 
enum class  llvm::pdb::PDB_Checksum { llvm::pdb::None = 0 , llvm::pdb::MD5 = 1 , llvm::pdb::SHA1 = 2 , llvm::pdb::SHA256 = 3 }
 Specifies the hash algorithm that a source file from a PDB was hashed with. More...
 
enum class  llvm::pdb::PDB_Machine {
  llvm::pdb::Invalid = 0xffff , llvm::pdb::Unknown = 0x0 , llvm::pdb::Am33 = 0x13 , llvm::pdb::Amd64 = 0x8664 ,
  llvm::pdb::Arm = 0x1C0 , llvm::pdb::Arm64 = 0xaa64 , llvm::pdb::ArmNT = 0x1C4 , llvm::pdb::Ebc = 0xEBC ,
  llvm::pdb::x86 = 0x14C , llvm::pdb::Ia64 = 0x200 , llvm::pdb::M32R = 0x9041 , llvm::pdb::Mips16 = 0x266 ,
  llvm::pdb::MipsFpu = 0x366 , llvm::pdb::MipsFpu16 = 0x466 , llvm::pdb::PowerPC = 0x1F0 , llvm::pdb::PowerPCFP = 0x1F1 ,
  llvm::pdb::R4000 = 0x166 , llvm::pdb::SH3 = 0x1A2 , llvm::pdb::SH3DSP = 0x1A3 , llvm::pdb::SH4 = 0x1A6 ,
  llvm::pdb::SH5 = 0x1A8 , llvm::pdb::Thumb = 0x1C2 , llvm::pdb::WceMipsV2 = 0x169
}
 
enum class  llvm::pdb::PDB_DataKind {
  llvm::pdb::Unknown , llvm::pdb::Local , llvm::pdb::StaticLocal , llvm::pdb::Param ,
  llvm::pdb::ObjectPtr , llvm::pdb::FileStatic , llvm::pdb::Global , llvm::pdb::Member ,
  llvm::pdb::StaticMember , llvm::pdb::Constant
}
 These values correspond to the DataKind enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/b2x2t313.aspx. More...
 
enum class  llvm::pdb::PDB_SymType {
  llvm::pdb::None , llvm::pdb::Exe , llvm::pdb::Compiland , llvm::pdb::CompilandDetails ,
  llvm::pdb::CompilandEnv , llvm::pdb::Function , llvm::pdb::Block , llvm::pdb::Data ,
  llvm::pdb::Annotation , llvm::pdb::Label , llvm::pdb::PublicSymbol , llvm::pdb::UDT ,
  llvm::pdb::Enum , llvm::pdb::FunctionSig , llvm::pdb::PointerType , llvm::pdb::ArrayType ,
  llvm::pdb::BuiltinType , llvm::pdb::Typedef , llvm::pdb::BaseClass , llvm::pdb::Friend ,
  llvm::pdb::FunctionArg , llvm::pdb::FuncDebugStart , llvm::pdb::FuncDebugEnd , llvm::pdb::UsingNamespace ,
  llvm::pdb::VTableShape , llvm::pdb::VTable , llvm::pdb::Custom , llvm::pdb::Thunk ,
  llvm::pdb::CustomType , llvm::pdb::ManagedType , llvm::pdb::Dimension , llvm::pdb::CallSite ,
  llvm::pdb::InlineSite , llvm::pdb::BaseInterface , llvm::pdb::VectorType , llvm::pdb::MatrixType ,
  llvm::pdb::HLSLType , llvm::pdb::Caller , llvm::pdb::Callee , llvm::pdb::Export ,
  llvm::pdb::HeapAllocationSite , llvm::pdb::CoffGroup , llvm::pdb::Inlinee , llvm::pdb::Max
}
 These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bkedss5f.aspx. More...
 
enum class  llvm::pdb::PDB_LocType {
  llvm::pdb::Null , llvm::pdb::Static , llvm::pdb::TLS , llvm::pdb::RegRel ,
  llvm::pdb::ThisRel , llvm::pdb::Enregistered , llvm::pdb::BitField , llvm::pdb::Slot ,
  llvm::pdb::IlRel , llvm::pdb::MetaData , llvm::pdb::Constant , llvm::pdb::RegRelAliasIndir ,
  llvm::pdb::Max
}
 These values correspond to the LocationType enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/f57kaez3.aspx. More...
 
enum class  llvm::pdb::PDB_UdtType { llvm::pdb::Struct , llvm::pdb::Class , llvm::pdb::Union , llvm::pdb::Interface }
 These values correspond to the UdtKind enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/wcstk66t.aspx. More...
 
enum class  llvm::pdb::PDB_StackFrameType : uint16_t {
  llvm::pdb::FPO , llvm::pdb::KernelTrap , llvm::pdb::KernelTSS , llvm::pdb::EBP ,
  llvm::pdb::FrameData , llvm::pdb::Unknown = 0xffff
}
 These values correspond to the StackFrameTypeEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/bc5207xw.aspx. More...
 
enum class  llvm::pdb::PDB_MemoryType : uint16_t {
  llvm::pdb::Code , llvm::pdb::Data , llvm::pdb::Stack , llvm::pdb::HeapCode ,
  llvm::pdb::Any = 0xffff
}
 These values correspond to the MemoryTypeEnum enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/ms165609.aspx. More...
 
enum class  llvm::pdb::PDB_BuiltinType {
  llvm::pdb::None = 0 , llvm::pdb::Void = 1 , llvm::pdb::Char = 2 , llvm::pdb::WCharT = 3 ,
  llvm::pdb::Int = 6 , llvm::pdb::UInt = 7 , llvm::pdb::Float = 8 , llvm::pdb::BCD = 9 ,
  llvm::pdb::Bool = 10 , llvm::pdb::Long = 13 , llvm::pdb::ULong = 14 , llvm::pdb::Currency = 25 ,
  llvm::pdb::Date = 26 , llvm::pdb::Variant = 27 , llvm::pdb::Complex = 28 , llvm::pdb::Bitfield = 29 ,
  llvm::pdb::BSTR = 30 , llvm::pdb::HResult = 31 , llvm::pdb::Char16 = 32 , llvm::pdb::Char32 = 33 ,
  llvm::pdb::Char8 = 34
}
 These values correspond to the Basictype enumeration, and are documented here: https://msdn.microsoft.com/en-us/library/4szdtzc3.aspx. More...
 
enum  llvm::pdb::PDB_UndnameFlags : uint32_t {
  llvm::pdb::Undname_Complete = 0x0 , llvm::pdb::Undname_NoLeadingUnderscores = 0x1 , llvm::pdb::Undname_NoMsKeywords = 0x2 , llvm::pdb::Undname_NoFuncReturns = 0x4 ,
  llvm::pdb::Undname_NoAllocModel = 0x8 , llvm::pdb::Undname_NoAllocLang = 0x10 , llvm::pdb::Undname_Reserved1 = 0x20 , llvm::pdb::Undname_Reserved2 = 0x40 ,
  llvm::pdb::Undname_NoThisType = 0x60 , llvm::pdb::Undname_NoAccessSpec = 0x80 , llvm::pdb::Undname_NoThrowSig = 0x100 , llvm::pdb::Undname_NoMemberType = 0x200 ,
  llvm::pdb::Undname_NoReturnUDTModel = 0x400 , llvm::pdb::Undname_32BitDecode = 0x800 , llvm::pdb::Undname_NameOnly = 0x1000 , llvm::pdb::Undname_TypeOnly = 0x2000 ,
  llvm::pdb::Undname_HaveParams = 0x4000 , llvm::pdb::Undname_NoECSU = 0x8000 , llvm::pdb::Undname_NoIdentCharCheck = 0x10000 , llvm::pdb::Undname_NoPTR64 = 0x20000
}
 These values correspond to the flags that can be combined to control the return of an undecorated name for a C++ decorated name, and are documented here: https://msdn.microsoft.com/en-us/library/kszfk0fs.aspx. More...
 
enum class  llvm::pdb::PDB_MemberAccess { llvm::pdb::Private = 1 , llvm::pdb::Protected = 2 , llvm::pdb::Public = 3 }
 
enum  llvm::pdb::PDB_VariantType {
  llvm::pdb::Empty , llvm::pdb::Unknown , llvm::pdb::Int8 , llvm::pdb::Int16 ,
  llvm::pdb::Int32 , llvm::pdb::Int64 , llvm::pdb::Single , llvm::pdb::Double ,
  llvm::pdb::UInt8 , llvm::pdb::UInt16 , llvm::pdb::UInt32 , llvm::pdb::UInt64 ,
  llvm::pdb::Bool , llvm::pdb::String
}
 

Macro Definition Documentation

◆ VARIANT_APSINT

#define VARIANT_APSINT (   Enum,
  NumBits,
  IsUnsigned 
)
Value:
case PDB_VariantType::Enum: \
return APSInt(APInt(NumBits, Value.Enum), IsUnsigned);

Definition at line 511 of file PDBTypes.h.

◆ VARIANT_EQUAL_CASE

#define VARIANT_EQUAL_CASE (   Enum)
Value:
case PDB_VariantType::Enum: \
return Value.Enum == Other.Value.Enum;
std::optional< std::vector< StOtherPiece > > Other
Definition: ELFYAML.cpp:1293

Definition at line 551 of file PDBTypes.h.

◆ VARIANT_WIDTH

#define VARIANT_WIDTH (   Enum,
  NumBits 
)
Value:
case PDB_VariantType::Enum: \
return NumBits;

Definition at line 486 of file PDBTypes.h.