LLVM  13.0.0git
PDBTypes.h
Go to the documentation of this file.
1 //===- PDBTypes.h - Defines enums for various fields contained in PDB ----====//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLVM_DEBUGINFO_PDB_PDBTYPES_H
10 #define LLVM_DEBUGINFO_PDB_PDBTYPES_H
11 
12 #include "llvm/ADT/APFloat.h"
17 #include <cctype>
18 #include <cstddef>
19 #include <cstdint>
20 #include <cstring>
21 #include <functional>
22 
23 namespace llvm {
24 namespace pdb {
25 
27 
28 class IPDBDataStream;
29 class IPDBInjectedSource;
30 class IPDBLineNumber;
31 class IPDBSectionContrib;
32 class IPDBSession;
33 class IPDBSourceFile;
34 class IPDBTable;
35 class PDBSymDumper;
36 class PDBSymbol;
37 class PDBSymbolExe;
38 class PDBSymbolCompiland;
41 class PDBSymbolFunc;
42 class PDBSymbolBlock;
43 class PDBSymbolData;
45 class PDBSymbolLabel;
47 class PDBSymbolTypeUDT;
48 class PDBSymbolTypeEnum;
51 class PDBSymbolTypeArray;
62 class PDBSymbolCustom;
63 class PDBSymbolThunk;
67 class PDBSymbolUnknown;
68 
77 
78 /// Specifies which PDB reader implementation is to be used. Only a value
79 /// of PDB_ReaderType::DIA is currently supported, but Native is in the works.
80 enum class PDB_ReaderType {
81  DIA = 0,
82  Native = 1,
83 };
84 
85 /// An enumeration indicating the type of data contained in this table.
86 enum class PDB_TableType {
87  TableInvalid = 0,
88  Symbols,
92  Segments,
94  FrameData,
96  Dbg
97 };
98 
99 /// Defines flags used for enumerating child symbols. This corresponds to the
100 /// NameSearchOptions enumeration which is documented here:
101 /// https://msdn.microsoft.com/en-us/library/yat28ads.aspx
103  NS_Default = 0x0,
107  NS_Regex = 0x8,
109 
110  // For backward compatibility.
114 };
115 
116 /// Specifies the hash algorithm that a source file from a PDB was hashed with.
117 /// This corresponds to the CV_SourceChksum_t enumeration and are documented
118 /// here: https://msdn.microsoft.com/en-us/library/e96az21x.aspx
119 enum class PDB_Checksum { None = 0, MD5 = 1, SHA1 = 2, SHA256 = 3 };
120 
121 /// These values correspond to the CV_CPU_TYPE_e enumeration, and are documented
122 /// here: https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx
124 
125 enum class PDB_Machine {
126  Invalid = 0xffff,
127  Unknown = 0x0,
128  Am33 = 0x13,
129  Amd64 = 0x8664,
130  Arm = 0x1C0,
131  Arm64 = 0xaa64,
132  ArmNT = 0x1C4,
133  Ebc = 0xEBC,
134  x86 = 0x14C,
135  Ia64 = 0x200,
136  M32R = 0x9041,
137  Mips16 = 0x266,
138  MipsFpu = 0x366,
139  MipsFpu16 = 0x466,
140  PowerPC = 0x1F0,
141  PowerPCFP = 0x1F1,
142  R4000 = 0x166,
143  SH3 = 0x1A2,
144  SH3DSP = 0x1A3,
145  SH4 = 0x1A6,
146  SH5 = 0x1A8,
147  Thumb = 0x1C2,
148  WceMipsV2 = 0x169
149 };
150 
151 // A struct with an inner unnamed enum with explicit underlying type resuls
152 // in an enum class that can implicitly convert to the underlying type, which
153 // is convenient for this enum.
155  enum : uint32_t {
156  // No compression. Produced e.g. by `link.exe /natvis:foo.natvis`.
158  // Not known what produces this.
160  // Not known what produces this.
162  // Not known what produces this.
163  LZ,
164  // Produced e.g. by `csc /debug`. The encoded data is its own mini-stream
165  // with the following layout (in little endian):
166  // GUID LanguageTypeGuid;
167  // GUID LanguageVendorGuid;
168  // GUID DocumentTypeGuid;
169  // GUID HashFunctionGuid;
170  // uint32_t HashDataSize;
171  // uint32_t CompressedDataSize;
172  // Followed by HashDataSize bytes containing a hash checksum,
173  // followed by CompressedDataSize bytes containing source contents.
174  //
175  // CompressedDataSize can be 0, in this case only the hash data is present.
176  // (CompressedDataSize is != 0 e.g. if `/embed` is passed to csc.exe.)
177  // The compressed data format is:
178  // uint32_t UncompressedDataSize;
179  // If UncompressedDataSize is 0, the data is stored uncompressed and
180  // CompressedDataSize stores the uncompressed size.
181  // If UncompressedDataSize is != 0, then the data is in raw deflate
182  // encoding as described in rfc1951.
183  //
184  // A GUID is 16 bytes, stored in the usual
185  // uint32_t
186  // uint16_t
187  // uint16_t
188  // uint8_t[24]
189  // layout.
190  //
191  // Well-known GUIDs for LanguageTypeGuid are:
192  // 63a08714-fc37-11d2-904c-00c04fa302a1 C
193  // 3a12d0b7-c26c-11d0-b442-00a0244a1dd2 C++
194  // 3f5162f8-07c6-11d3-9053-00c04fa302a1 C#
195  // af046cd1-d0e1-11d2-977c-00a0c9b4d50c Cobol
196  // ab4f38c9-b6e6-43ba-be3b-58080b2ccce3 F#
197  // 3a12d0b4-c26c-11d0-b442-00a0244a1dd2 Java
198  // 3a12d0b6-c26c-11d0-b442-00a0244a1dd2 JScript
199  // af046cd2-d0e1-11d2-977c-00a0c9b4d50c Pascal
200  // 3a12d0b8-c26c-11d0-b442-00a0244a1dd2 Visual Basic
201  //
202  // Well-known GUIDs for LanguageVendorGuid are:
203  // 994b45c4-e6e9-11d2-903f-00c04fa302a1 Microsoft
204  //
205  // Well-known GUIDs for DocumentTypeGuid are:
206  // 5a869d0b-6611-11d3-bd2a-0000f80849bd Text
207  //
208  // Well-known GUIDs for HashFunctionGuid are:
209  // 406ea660-64cf-4c82-b6f0-42d48172a799 MD5 (HashDataSize is 16)
210  // ff1816ec-aa5e-4d10-87f7-6f4963833460 SHA1 (HashDataSize is 20)
211  // 8829d00f-11b8-4213-878b-770e8597ac16 SHA256 (HashDataSize is 32)
212  DotNet = 101,
213  };
214 };
215 
216 /// These values correspond to the CV_call_e enumeration, and are documented
217 /// at the following locations:
218 /// https://msdn.microsoft.com/en-us/library/b2fc64ek.aspx
219 /// https://msdn.microsoft.com/en-us/library/windows/desktop/ms680207(v=vs.85).aspx
221 
222 /// These values correspond to the CV_CFL_LANG enumeration, and are documented
223 /// here: https://msdn.microsoft.com/en-us/library/bw3aekw6.aspx
225 
226 /// These values correspond to the DataKind enumeration, and are documented
227 /// here: https://msdn.microsoft.com/en-us/library/b2x2t313.aspx
228 enum class PDB_DataKind {
229  Unknown,
230  Local,
231  StaticLocal,
232  Param,
233  ObjectPtr,
234  FileStatic,
235  Global,
236  Member,
237  StaticMember,
238  Constant
239 };
240 
241 /// These values correspond to the SymTagEnum enumeration, and are documented
242 /// here: https://msdn.microsoft.com/en-us/library/bkedss5f.aspx
243 enum class PDB_SymType {
244  None,
245  Exe,
246  Compiland,
248  CompilandEnv,
249  Function,
250  Block,
251  Data,
252  Annotation,
253  Label,
254  PublicSymbol,
255  UDT,
256  Enum,
257  FunctionSig,
258  PointerType,
259  ArrayType,
260  BuiltinType,
261  Typedef,
262  BaseClass,
263  Friend,
264  FunctionArg,
266  FuncDebugEnd,
268  VTableShape,
269  VTable,
270  Custom,
271  Thunk,
272  CustomType,
273  ManagedType,
274  Dimension,
275  CallSite,
276  InlineSite,
278  VectorType,
279  MatrixType,
280  HLSLType,
281  Caller,
282  Callee,
283  Export,
285  CoffGroup,
286  Inlinee,
287  Max
288 };
289 
290 /// These values correspond to the LocationType enumeration, and are documented
291 /// here: https://msdn.microsoft.com/en-us/library/f57kaez3.aspx
292 enum class PDB_LocType {
293  Null,
294  Static,
295  TLS,
296  RegRel,
297  ThisRel,
298  Enregistered,
299  BitField,
300  Slot,
301  IlRel,
302  MetaData,
303  Constant,
305  Max
306 };
307 
308 /// These values correspond to the UdtKind enumeration, and are documented
309 /// here: https://msdn.microsoft.com/en-us/library/wcstk66t.aspx
311 
312 /// These values correspond to the StackFrameTypeEnum enumeration, and are
313 /// documented here: https://msdn.microsoft.com/en-us/library/bc5207xw.aspx.
315  FPO,
316  KernelTrap,
317  KernelTSS,
318  EBP,
319  FrameData,
320  Unknown = 0xffff
321 };
322 
323 /// These values correspond to the MemoryTypeEnum enumeration, and are
324 /// documented here: https://msdn.microsoft.com/en-us/library/ms165609.aspx.
325 enum class PDB_MemoryType : uint16_t {
326  Code,
327  Data,
328  Stack,
329  HeapCode,
330  Any = 0xffff
331 };
332 
333 /// These values correspond to the Basictype enumeration, and are documented
334 /// here: https://msdn.microsoft.com/en-us/library/4szdtzc3.aspx
335 enum class PDB_BuiltinType {
336  None = 0,
337  Void = 1,
338  Char = 2,
339  WCharT = 3,
340  Int = 6,
341  UInt = 7,
342  Float = 8,
343  BCD = 9,
344  Bool = 10,
345  Long = 13,
346  ULong = 14,
347  Currency = 25,
348  Date = 26,
349  Variant = 27,
350  Complex = 28,
351  Bitfield = 29,
352  BSTR = 30,
353  HResult = 31,
354  Char16 = 32,
355  Char32 = 33
356 };
357 
358 /// These values correspond to the flags that can be combined to control the
359 /// return of an undecorated name for a C++ decorated name, and are documented
360 /// here: https://msdn.microsoft.com/en-us/library/kszfk0fs.aspx
379  Undname_NoECSU = 0x8000,
381  Undname_NoPTR64 = 0x20000
382 };
383 
384 enum class PDB_MemberAccess { Private = 1, Protected = 2, Public = 3 };
385 
386 struct VersionInfo {
391 };
392 
408 };
409 
410 struct Variant {
411  Variant() = default;
412 
413  explicit Variant(bool V) : Type(PDB_VariantType::Bool) { Value.Bool = V; }
414  explicit Variant(int8_t V) : Type(PDB_VariantType::Int8) { Value.Int8 = V; }
415  explicit Variant(int16_t V) : Type(PDB_VariantType::Int16) {
416  Value.Int16 = V;
417  }
418  explicit Variant(int32_t V) : Type(PDB_VariantType::Int32) {
419  Value.Int32 = V;
420  }
421  explicit Variant(int64_t V) : Type(PDB_VariantType::Int64) {
422  Value.Int64 = V;
423  }
424  explicit Variant(float V) : Type(PDB_VariantType::Single) {
425  Value.Single = V;
426  }
427  explicit Variant(double V) : Type(PDB_VariantType::Double) {
428  Value.Double = V;
429  }
430  explicit Variant(uint8_t V) : Type(PDB_VariantType::UInt8) {
431  Value.UInt8 = V;
432  }
434  Value.UInt16 = V;
435  }
437  Value.UInt32 = V;
438  }
439  explicit Variant(uint64_t V) : Type(PDB_VariantType::UInt64) {
440  Value.UInt64 = V;
441  }
442 
443  Variant(const Variant &Other) {
444  *this = Other;
445  }
446 
449  delete[] Value.String;
450  }
451 
453  union {
454  bool Bool;
455  int8_t Int8;
456  int16_t Int16;
457  int32_t Int32;
458  int64_t Int64;
459  float Single;
460  double Double;
461  uint8_t UInt8;
464  uint64_t UInt64;
465  char *String;
466  } Value;
467 
468  bool isIntegralType() const {
469  switch (Type) {
470  case Bool:
471  case Int8:
472  case Int16:
473  case Int32:
474  case Int64:
475  case UInt8:
476  case UInt16:
477  case UInt32:
478  case UInt64:
479  return true;
480  default:
481  return false;
482  }
483  }
484 
485 #define VARIANT_WIDTH(Enum, NumBits) \
486  case PDB_VariantType::Enum: \
487  return NumBits;
488 
489  unsigned getBitWidth() const {
490  switch (Type) {
491  VARIANT_WIDTH(Bool, 1u)
492  VARIANT_WIDTH(Int8, 8u)
493  VARIANT_WIDTH(Int16, 16u)
494  VARIANT_WIDTH(Int32, 32u)
495  VARIANT_WIDTH(Int64, 64u)
496  VARIANT_WIDTH(Single, 32u)
497  VARIANT_WIDTH(Double, 64u)
498  VARIANT_WIDTH(UInt8, 8u)
499  VARIANT_WIDTH(UInt16, 16u)
500  VARIANT_WIDTH(UInt32, 32u)
501  VARIANT_WIDTH(UInt64, 64u)
502  default:
503  assert(false && "Variant::toAPSInt called on non-numeric type");
504  return 0u;
505  }
506  }
507 
508 #undef VARIANT_WIDTH
509 
510 #define VARIANT_APSINT(Enum, NumBits, IsUnsigned) \
511  case PDB_VariantType::Enum: \
512  return APSInt(APInt(NumBits, Value.Enum), IsUnsigned);
513 
514  APSInt toAPSInt() const {
515  switch (Type) {
516  VARIANT_APSINT(Bool, 1u, true)
517  VARIANT_APSINT(Int8, 8u, false)
518  VARIANT_APSINT(Int16, 16u, false)
519  VARIANT_APSINT(Int32, 32u, false)
520  VARIANT_APSINT(Int64, 64u, false)
521  VARIANT_APSINT(UInt8, 8u, true)
522  VARIANT_APSINT(UInt16, 16u, true)
523  VARIANT_APSINT(UInt32, 32u, true)
524  VARIANT_APSINT(UInt64, 64u, true)
525  default:
526  assert(false && "Variant::toAPSInt called on non-integral type");
527  return APSInt();
528  }
529  }
530 
531 #undef VARIANT_APSINT
532 
533  APFloat toAPFloat() const {
534  // Float constants may be tagged as integers.
535  switch (Type) {
539  return APFloat(Value.Single);
543  return APFloat(Value.Double);
544  default:
545  assert(false && "Variant::toAPFloat called on non-floating-point type");
547  }
548  }
549 
550 #define VARIANT_EQUAL_CASE(Enum) \
551  case PDB_VariantType::Enum: \
552  return Value.Enum == Other.Value.Enum;
553 
554  bool operator==(const Variant &Other) const {
555  if (Type != Other.Type)
556  return false;
557  switch (Type) {
570  default:
571  return true;
572  }
573  }
574 
575 #undef VARIANT_EQUAL_CASE
576 
577  bool operator!=(const Variant &Other) const { return !(*this == Other); }
578  Variant &operator=(const Variant &Other) {
579  if (this == &Other)
580  return *this;
582  delete[] Value.String;
583  Type = Other.Type;
584  Value = Other.Value;
585  if (Other.Type == PDB_VariantType::String &&
586  Other.Value.String != nullptr) {
587  Value.String = new char[strlen(Other.Value.String) + 1];
588  ::strcpy(Value.String, Other.Value.String);
589  }
590  return *this;
591  }
592 };
593 
594 } // end namespace pdb
595 } // end namespace llvm
596 
597 namespace std {
598 
599 template <> struct hash<llvm::pdb::PDB_SymType> {
601  using result_type = std::size_t;
602 
604  return std::hash<int>()(static_cast<int>(Arg));
605  }
606 };
607 
608 } // end namespace std
609 
610 #endif // LLVM_DEBUGINFO_PDB_PDBTYPES_H
llvm::pdb::PDB_SymType::UsingNamespace
@ UsingNamespace
llvm::pdb::PDBSymbolCompilandEnv
Definition: PDBSymbolCompilandEnv.h:19
llvm::pdb::Variant::String
char * String
Definition: PDBTypes.h:465
llvm::pdb::IPDBSession
IPDBSession defines an interface used to provide a context for querying debug information from a debu...
Definition: IPDBSession.h:25
llvm::lltok::APFloat
@ APFloat
Definition: LLToken.h:489
llvm::pdb::PDB_SymType::CustomType
@ CustomType
llvm::pdb::VersionInfo::Major
uint32_t Major
Definition: PDBTypes.h:387
llvm::pdb::PDB_TableType::SourceFiles
@ SourceFiles
llvm::pdb::PDB_UdtType::Interface
@ Interface
llvm::pdb::PDB_MemberAccess::Private
@ Private
llvm::pdb::PDB_TableType::InputAssemblyFiles
@ InputAssemblyFiles
llvm::pdb::PDB_BuiltinType::ULong
@ ULong
llvm::pdb::Variant::Variant
Variant(int32_t V)
Definition: PDBTypes.h:418
llvm::pdb::PDB_UdtType::Struct
@ Struct
llvm::pdb::IPDBDataStream
IPDBDataStream defines an interface used to represent a stream consisting of a name and a series of r...
Definition: IPDBDataStream.h:23
llvm::pdb::Variant::toAPSInt
APSInt toAPSInt() const
Definition: PDBTypes.h:514
llvm::pdb::Variant::UInt8
uint8_t UInt8
Definition: PDBTypes.h:461
llvm
Definition: AllocatorList.h:23
llvm::pdb::PDB_DataKind::FileStatic
@ FileStatic
llvm::pdb::PDBSymbolPublicSymbol
Definition: PDBSymbolPublicSymbol.h:20
llvm::pdb::Variant::Variant
Variant()=default
llvm::pdb::Undname_NoFuncReturns
@ Undname_NoFuncReturns
Definition: PDBTypes.h:365
llvm::pdb::PDB_BuiltinType::Char
@ Char
llvm::pdb::PDB_SymType::FunctionSig
@ FunctionSig
llvm::pdb::PDB_SymType::BaseClass
@ BaseClass
llvm::pdb::VersionInfo::Build
uint32_t Build
Definition: PDBTypes.h:389
llvm::pdb::PDB_StackFrameType::FPO
@ FPO
llvm::APFloatBase::IEEEsingle
static const fltSemantics & IEEEsingle() LLVM_READNONE
Definition: APFloat.cpp:163
std::hash< llvm::pdb::PDB_SymType >::result_type
std::size_t result_type
Definition: PDBTypes.h:601
llvm::pdb::PDB_DataKind::Member
@ Member
llvm::pdb::NS_CaseInFileNameExt
@ NS_CaseInFileNameExt
Definition: PDBTypes.h:111
RawTypes.h
llvm::pdb::PDB_SymType::MatrixType
@ MatrixType
llvm::pdb::Int64
@ Int64
Definition: PDBTypes.h:399
llvm::pdb::Variant::Variant
Variant(int16_t V)
Definition: PDBTypes.h:415
llvm::pdb::PDBSymbolTypeEnum
Definition: PDBSymbolTypeEnum.h:22
llvm::pdb::PDB_Machine::PowerPC
@ PowerPC
llvm::pdb::PDB_SymType::CoffGroup
@ CoffGroup
llvm::pdb::PDB_SymType::HeapAllocationSite
@ HeapAllocationSite
llvm::pdb::PDB_SourceCompression::LZ
@ LZ
Definition: PDBTypes.h:163
llvm::SHA256
Definition: SHA256.h:33
llvm::pdb::UInt16
@ UInt16
Definition: PDBTypes.h:403
llvm::pdb::Variant::getBitWidth
unsigned getBitWidth() const
Definition: PDBTypes.h:489
llvm::pdb::IPDBSourceFile
IPDBSourceFile defines an interface used to represent source files whose information are stored in th...
Definition: IPDBSourceFile.h:23
llvm::pdb::PDB_MemberAccess::Public
@ Public
llvm::pdb::PDB_DataKind::StaticMember
@ StaticMember
llvm::pdb::Variant::UInt64
uint64_t UInt64
Definition: PDBTypes.h:464
llvm::pdb::PDBSymbolTypeVTable
Definition: PDBSymbolTypeVTable.h:20
llvm::pdb::PDB_SourceCompression::None
@ None
Definition: PDBTypes.h:157
llvm::pdb::PDB_BuiltinType::Char32
@ Char32
llvm::pdb::Undname_NoMemberType
@ Undname_NoMemberType
Definition: PDBTypes.h:373
llvm::pdb::PDB_UdtType
PDB_UdtType
These values correspond to the UdtKind enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:310
llvm::pdb::PDB_BuiltinType::HResult
@ HResult
llvm::lltok::APSInt
@ APSInt
Definition: LLToken.h:490
llvm::pdb::PDB_LocType
PDB_LocType
These values correspond to the LocationType enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:292
llvm::pdb::PDB_Machine::M32R
@ M32R
llvm::pdb::PDB_SymType::PointerType
@ PointerType
llvm::pdb::PDB_TableType::Dbg
@ Dbg
llvm::pdb::Undname_NoThisType
@ Undname_NoThisType
Definition: PDBTypes.h:370
llvm::pdb::PDB_SymType::BaseInterface
@ BaseInterface
llvm::pdb::Variant::Variant
Variant(uint64_t V)
Definition: PDBTypes.h:439
llvm::Type
The instances of the Type class are immutable: once they are created, they are never changed.
Definition: Type.h:46
llvm::pdb::Bool
@ Bool
llvm::pdb::Variant::Variant
Variant(double V)
Definition: PDBTypes.h:427
llvm::pdb::PDB_LocType::Max
@ Max
llvm::pdb::VersionInfo
Definition: PDBTypes.h:386
llvm::pdb::Undname_NoECSU
@ Undname_NoECSU
Definition: PDBTypes.h:379
llvm::pdb::VersionInfo::Minor
uint32_t Minor
Definition: PDBTypes.h:388
llvm::pdb::PDB_Machine::PowerPCFP
@ PowerPCFP
llvm::pdb::PDB_MemoryType
PDB_MemoryType
These values correspond to the MemoryTypeEnum enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:325
llvm::pdb::Undname_NoAccessSpec
@ Undname_NoAccessSpec
Definition: PDBTypes.h:371
llvm::pdb::PDBSymbolData
Definition: PDBSymbolData.h:22
llvm::pdb::Variant::Double
double Double
Definition: PDBTypes.h:460
llvm::pdb::PDB_SymType::Custom
@ Custom
llvm::pdb::Variant::Variant
Variant(const Variant &Other)
Definition: PDBTypes.h:443
llvm::pdb::PDB_StackFrameType
PDB_StackFrameType
These values correspond to the StackFrameTypeEnum enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:314
llvm::Bitfield
Holds functions to get, set or test bitfields.
Definition: Bitfields.h:212
llvm::pdb::Double
@ Double
Definition: PDBTypes.h:401
llvm::pdb::Variant::Variant
Variant(uint32_t V)
Definition: PDBTypes.h:436
llvm::pdb::PDB_SymType
PDB_SymType
These values correspond to the SymTagEnum enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:243
llvm::pdb::PDB_Machine::SH5
@ SH5
llvm::pdb::PDB_SymType::FuncDebugStart
@ FuncDebugStart
llvm::pdb::PDB_LocType::BitField
@ BitField
llvm::pdb::PDB_Machine::Am33
@ Am33
llvm::pdb::PDB_MemberAccess::Protected
@ Protected
llvm::pdb::Undname_Reserved1
@ Undname_Reserved1
Definition: PDBTypes.h:368
llvm::pdb::PDB_SymType::Callee
@ Callee
llvm::pdb::PDB_SymType::InlineSite
@ InlineSite
llvm::pdb::IPDBTable
Definition: IPDBTable.h:16
Arg
amdgpu Simplify well known AMD library false FunctionCallee Value * Arg
Definition: AMDGPULibCalls.cpp:205
llvm::pdb::PDB_Machine::Ebc
@ Ebc
llvm::APFloat::getZero
static APFloat getZero(const fltSemantics &Sem, bool Negative=false)
Factory for Positive and Negative Zero.
Definition: APFloat.h:885
llvm::pdb::PDB_BuiltinType::Currency
@ Currency
llvm::pdb::Undname_HaveParams
@ Undname_HaveParams
Definition: PDBTypes.h:378
llvm::pdb::PDBSymbolTypeTypedef
Definition: PDBSymbolTypeTypedef.h:20
llvm::pdb::PDBSymbolTypeFriend
Definition: PDBSymbolTypeFriend.h:20
llvm::pdb::PDBSymbolTypeDimension
Definition: PDBSymbolTypeDimension.h:20
llvm::pdb::PDBSymbolTypeFunctionArg
Definition: PDBSymbolTypeFunctionArg.h:20
llvm::pdb::PDB_SourceCompression::DotNet
@ DotNet
Definition: PDBTypes.h:212
llvm::pdb::PDB_MemoryType::Code
@ Code
llvm::pdb::PDB_LocType::Null
@ Null
llvm::pdb::PDB_LocType::RegRel
@ RegRel
llvm::pdb::Variant::Int64
int64_t Int64
Definition: PDBTypes.h:458
llvm::pdb::Variant::Variant
Variant(bool V)
Definition: PDBTypes.h:413
std::hash< llvm::pdb::PDB_SymType >::operator()
result_type operator()(const argument_type &Arg) const
Definition: PDBTypes.h:603
llvm::pdb::PDB_DataKind::StaticLocal
@ StaticLocal
llvm::pdb::PDBSymbolExe
Definition: PDBSymbolExe.h:21
llvm::SHA1
A class that wrap the SHA1 algorithm.
Definition: SHA1.h:26
llvm::pdb::Undname_TypeOnly
@ Undname_TypeOnly
Definition: PDBTypes.h:377
llvm::pdb::SymIndexId
uint32_t SymIndexId
Definition: PDBTypes.h:26
llvm::pdb::NS_Default
@ NS_Default
Definition: PDBTypes.h:103
llvm::pdb::PDB_DataKind
PDB_DataKind
These values correspond to the DataKind enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:228
llvm::pdb::PDB_SymType::FunctionArg
@ FunctionArg
VARIANT_EQUAL_CASE
#define VARIANT_EQUAL_CASE(Enum)
Definition: PDBTypes.h:550
llvm::pdb::PDB_TableType::InjectedSources
@ InjectedSources
llvm::pdb::Undname_NoAllocLang
@ Undname_NoAllocLang
Definition: PDBTypes.h:367
llvm::pdb::Variant::toAPFloat
APFloat toAPFloat() const
Definition: PDBTypes.h:533
llvm::pdb::Variant::isIntegralType
bool isIntegralType() const
Definition: PDBTypes.h:468
llvm::pdb::PDB_SourceCompression
Definition: PDBTypes.h:154
llvm::pdb::PDBSymbolTypeBaseClass
Definition: PDBSymbolTypeBaseClass.h:23
llvm::pdb::PDB_SymType::UDT
@ UDT
llvm::pdb::Variant::operator=
Variant & operator=(const Variant &Other)
Definition: PDBTypes.h:578
llvm::pdb::Undname_NoIdentCharCheck
@ Undname_NoIdentCharCheck
Definition: PDBTypes.h:380
llvm::pdb::UInt32
@ UInt32
Definition: PDBTypes.h:404
llvm::pdb::PDB_Machine::SH3DSP
@ SH3DSP
llvm::pdb::PDB_BuiltinType::Int
@ Int
llvm::pdb::PDB_SymType::Caller
@ Caller
llvm::pdb::PDB_SymType::CompilandDetails
@ CompilandDetails
llvm::pdb::PDBSymbol
PDBSymbol defines the base of the inheritance hierarchy for concrete symbol types (e....
Definition: PDBSymbol.h:70
llvm::pdb::Int8
@ Int8
Definition: PDBTypes.h:396
llvm::pdb::PDB_Machine::MipsFpu16
@ MipsFpu16
llvm::APSInt
An arbitrary precision integer that knows its signedness.
Definition: APSInt.h:22
llvm::pdb::PDB_Machine::Arm
@ Arm
APFloat.h
This file declares a class to represent arbitrary precision floating point values and provide a varie...
llvm::pdb::PDB_BuiltinType::BCD
@ BCD
llvm::pdb::PDB_LocType::TLS
@ TLS
llvm::pdb::PDB_NameSearchFlags
PDB_NameSearchFlags
Defines flags used for enumerating child symbols.
Definition: PDBTypes.h:102
llvm::pdb::PDBSymbolTypeCustom
Definition: PDBSymbolTypeCustom.h:20
llvm::pdb::PDB_Machine::Mips16
@ Mips16
llvm::pdb::PDB_ReaderType
PDB_ReaderType
Specifies which PDB reader implementation is to be used.
Definition: PDBTypes.h:80
llvm::pdb::PDB_SymType::ArrayType
@ ArrayType
llvm::pdb::PDB_Machine::SH3
@ SH3
CodeView.h
llvm::pdb::Variant::Int16
int16_t Int16
Definition: PDBTypes.h:456
llvm::pdb::PDBSymbolTypeArray
Definition: PDBSymbolTypeArray.h:20
llvm::pdb::PDB_TableType::LineNumbers
@ LineNumbers
llvm::pdb::NS_CaseInRex
@ NS_CaseInRex
Definition: PDBTypes.h:113
llvm::pdb::PDBSymbolTypeFunctionSig
Definition: PDBSymbolTypeFunctionSig.h:20
llvm::pdb::PDB_BuiltinType::UInt
@ UInt
llvm::pdb::PDB_SymType::VTableShape
@ VTableShape
llvm::pdb::Variant::Int8
int8_t Int8
Definition: PDBTypes.h:455
llvm::pdb::PDB_MemoryType::HeapCode
@ HeapCode
llvm::pdb::PDB_Checksum::None
@ None
llvm::pdb::PDB_Machine::Ia64
@ Ia64
llvm::pdb::PDB_StackFrameType::KernelTSS
@ KernelTSS
llvm::pdb::PDB_BuiltinType::Char16
@ Char16
llvm::pdb::PDB_Machine::R4000
@ R4000
llvm::pdb::VersionInfo::QFE
uint32_t QFE
Definition: PDBTypes.h:390
llvm::APFloat
Definition: APFloat.h:701
llvm::pdb::PDB_BuiltinType::Date
@ Date
llvm::Constant
This is an important base class in LLVM.
Definition: Constant.h:41
llvm::pdb::PDBSymbolTypePointer
Definition: PDBSymbolTypePointer.h:20
llvm::pdb::PDB_Machine::ArmNT
@ ArmNT
llvm::pdb::PDBSymbolTypeVTableShape
Definition: PDBSymbolTypeVTableShape.h:20
llvm::pdb::PDB_TableType
PDB_TableType
An enumeration indicating the type of data contained in this table.
Definition: PDBTypes.h:86
llvm::pdb::Unknown
@ Unknown
Definition: PDBTypes.h:395
llvm::pdb::Variant::Bool
bool Bool
Definition: PDBTypes.h:454
llvm::pdb::PDB_Machine::SH4
@ SH4
llvm::pdb::PDB_Machine::Arm64
@ Arm64
llvm::pdb::PDB_BuiltinType::WCharT
@ WCharT
llvm::pdb::Undname_NoAllocModel
@ Undname_NoAllocModel
Definition: PDBTypes.h:366
llvm::pdb::NS_FileNameExtMatch
@ NS_FileNameExtMatch
Definition: PDBTypes.h:106
llvm::pdb::PDB_StackFrameType::FrameData
@ FrameData
llvm::pdb::PDB_DataKind::Param
@ Param
llvm::MD5
Definition: MD5.h:41
llvm::pdb::Int32
@ Int32
Definition: PDBTypes.h:398
llvm::pdb::Variant::Variant
Variant(int64_t V)
Definition: PDBTypes.h:421
llvm::pdb::Empty
@ Empty
Definition: PDBTypes.h:394
llvm::pdb::Undname_NoPTR64
@ Undname_NoPTR64
Definition: PDBTypes.h:381
llvm::pdb::PDB_LocType::Enregistered
@ Enregistered
llvm::pdb::IPDBLineNumber
Definition: IPDBLineNumber.h:16
llvm::pdb::PDB_UndnameFlags
PDB_UndnameFlags
These values correspond to the flags that can be combined to control the return of an undecorated nam...
Definition: PDBTypes.h:361
llvm::pdb::PDB_SymType::VTable
@ VTable
IPDBFrameData.h
llvm::pdb::PDB_BuiltinType::None
@ None
llvm::pdb::PDBSymbolBlock
Definition: PDBSymbolBlock.h:20
IPDBEnumChildren.h
llvm::pdb::PDB_MemoryType::Stack
@ Stack
llvm::pdb::PDB_ReaderType::Native
@ Native
assert
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
llvm::pdb::PDB_VariantType
PDB_VariantType
Definition: PDBTypes.h:393
llvm::pdb::PDBSymbolAnnotation
Definition: PDBSymbolAnnotation.h:19
llvm::pdb::Variant::UInt32
uint32_t UInt32
Definition: PDBTypes.h:463
llvm::pdb::PDB_SymType::Thunk
@ Thunk
llvm::pdb::PDB_SymType::Dimension
@ Dimension
llvm::pdb::PDBSymDumper
Definition: PDBSymDumper.h:19
llvm::pdb::PDB_TableType::Segments
@ Segments
llvm::pdb::PDB_LocType::Static
@ Static
llvm::pdb::PDB_SymType::Function
@ Function
llvm::pdb::PDBSymbolLabel
Definition: PDBSymbolLabel.h:20
llvm::pdb::PDB_SymType::Data
@ Data
llvm::pdb::PDB_UdtType::Class
@ Class
llvm::pdb::PDB_Machine::WceMipsV2
@ WceMipsV2
llvm::pdb::PDB_UdtType::Union
@ Union
llvm::pdb::PDBSymbolFuncDebugStart
Definition: PDBSymbolFuncDebugStart.h:20
llvm::pdb::PDBSymbolThunk
Definition: PDBSymbolThunk.h:20
llvm::pdb::PDB_Machine::Thumb
@ Thumb
llvm::pdb::PDB_SymType::None
@ None
llvm::pdb::Undname_NameOnly
@ Undname_NameOnly
Definition: PDBTypes.h:376
llvm::pdb::PDB_BuiltinType::Void
@ Void
llvm::pdb::NS_Regex
@ NS_Regex
Definition: PDBTypes.h:107
VARIANT_WIDTH
#define VARIANT_WIDTH(Enum, NumBits)
Definition: PDBTypes.h:485
llvm::pdb::Variant::Variant
Variant(uint16_t V)
Definition: PDBTypes.h:433
llvm::pdb::PDB_MemoryType::Data
@ Data
llvm::codeview::SourceLanguage
SourceLanguage
These values correspond to the CV_CFL_LANG enumeration, and are documented here: https://msdn....
Definition: CodeView.h:143
llvm::pdb::PDB_TableType::Symbols
@ Symbols
llvm::pdb::PDB_Machine::Amd64
@ Amd64
llvm::pdb::PDB_Machine
PDB_Machine
Definition: PDBTypes.h:125
llvm::pdb::PDB_LocType::MetaData
@ MetaData
llvm::pdb::PDB_SymType::FuncDebugEnd
@ FuncDebugEnd
llvm::pdb::Variant::UInt16
uint16_t UInt16
Definition: PDBTypes.h:462
llvm::pdb::PDB_TableType::SectionContribs
@ SectionContribs
llvm::pdb::Variant::Variant
Variant(uint8_t V)
Definition: PDBTypes.h:430
llvm::pdb::Variant::Variant
Variant(int8_t V)
Definition: PDBTypes.h:414
llvm::pdb::Unknown
@ Unknown
uint32_t
llvm::pdb::PDB_BuiltinType
PDB_BuiltinType
These values correspond to the Basictype enumeration, and are documented here: https://msdn....
Definition: PDBTypes.h:335
VARIANT_APSINT
#define VARIANT_APSINT(Enum, NumBits, IsUnsigned)
Definition: PDBTypes.h:510
llvm::pdb::IPDBSectionContrib
IPDBSectionContrib defines an interface used to represent section contributions whose information are...
Definition: IPDBSectionContrib.h:19
llvm::pdb::Undname_NoLeadingUnderscores
@ Undname_NoLeadingUnderscores
Definition: PDBTypes.h:363
llvm::pdb::IPDBInjectedSource
IPDBInjectedSource defines an interface used to represent source files which were injected directly i...
Definition: IPDBInjectedSource.h:21
llvm::pdb::NS_CaseSensitive
@ NS_CaseSensitive
Definition: PDBTypes.h:104
llvm::pdb::PDB_SymType::Enum
@ Enum
llvm::pdb::PDB_LocType::Constant
@ Constant
llvm::pdb::Bool
@ Bool
Definition: PDBTypes.h:406
llvm::pdb::PDBSymbolUnknown
Definition: PDBSymbolUnknown.h:19
llvm::pdb::PDB_BuiltinType::Complex
@ Complex
llvm::pdb::Single
@ Single
Definition: PDBTypes.h:400
llvm::pdb::PDB_StackFrameType::EBP
@ EBP
llvm::pdb::PDB_SymType::HLSLType
@ HLSLType
llvm::pdb::PDB_DataKind::Local
@ Local
llvm::pdb::PDB_SymType::Annotation
@ Annotation
llvm::pdb::Variant
Definition: PDBTypes.h:410
llvm::Any
Definition: Any.h:26
llvm::pdb::PDB_SymType::Label
@ Label
std
Definition: BitVector.h:838
llvm::pdb::PDB_SymType::CompilandEnv
@ CompilandEnv
llvm::pdb::PDB_SymType::Inlinee
@ Inlinee
llvm::pdb::PDB_BuiltinType::Float
@ Float
uint16_t
llvm::pdb::PDB_ReaderType::DIA
@ DIA
llvm::pdb::PDB_SourceCompression::Huffman
@ Huffman
Definition: PDBTypes.h:161
llvm::pdb::PDB_Checksum
PDB_Checksum
Specifies the hash algorithm that a source file from a PDB was hashed with.
Definition: PDBTypes.h:119
llvm::pdb::PDB_LocType::Slot
@ Slot
llvm::pdb::Variant::~Variant
~Variant()
Definition: PDBTypes.h:447
llvm::codeview::CPUType
CPUType
These values correspond to the CV_CPU_TYPE_e enumeration, and are documented here: https://msdn....
Definition: CodeView.h:78
llvm::pdb::PDBSymbolFuncDebugEnd
Definition: PDBSymbolFuncDebugEnd.h:21
llvm::pdb::PDB_SymType::Compiland
@ Compiland
llvm::pdb::PDB_SymType::ManagedType
@ ManagedType
llvm::pdb::PDBSymbolTypeManaged
Definition: PDBSymbolTypeManaged.h:20
llvm::pdb::PDB_SymType::CallSite
@ CallSite
llvm::pdb::PDBSymbolCompilandDetails
Definition: PDBSymbolCompilandDetails.h:20
llvm::pdb::Int16
@ Int16
Definition: PDBTypes.h:397
llvm::pdb::PDB_LocType::ThisRel
@ ThisRel
llvm::pdb::PDB_Machine::MipsFpu
@ MipsFpu
llvm::pdb::PDB_SourceCompression::RunLengthEncoded
@ RunLengthEncoded
Definition: PDBTypes.h:159
llvm::pdb::Variant::operator!=
bool operator!=(const Variant &Other) const
Definition: PDBTypes.h:577
llvm::pdb::PDB_BuiltinType::Long
@ Long
llvm::pdb::PDB_MemberAccess
PDB_MemberAccess
Definition: PDBTypes.h:384
llvm::pdb::NS_UndecoratedName
@ NS_UndecoratedName
Definition: PDBTypes.h:108
llvm::pdb::PDB_SymType::BuiltinType
@ BuiltinType
llvm::pdb::PDB_SymType::Typedef
@ Typedef
llvm::pdb::PDB_LocType::RegRelAliasIndir
@ RegRelAliasIndir
llvm::pdb::PDB_SymType::Exe
@ Exe
llvm::pdb::PDBSymbolTypeBuiltin
Definition: PDBSymbolTypeBuiltin.h:20
llvm::pdb::Undname_Complete
@ Undname_Complete
Definition: PDBTypes.h:362
llvm::pdb::Undname_NoMsKeywords
@ Undname_NoMsKeywords
Definition: PDBTypes.h:364
llvm::pdb::NS_CaseInsensitive
@ NS_CaseInsensitive
Definition: PDBTypes.h:105
llvm::pdb::PDBSymbolFunc
Definition: PDBSymbolFunc.h:23
llvm::codeview::CallingConvention
CallingConvention
These values correspond to the CV_call_e enumeration, and are documented at the following locations: ...
Definition: CodeView.h:173
llvm::pdb::PDB_DataKind::Global
@ Global
llvm::pdb::Undname_Reserved2
@ Undname_Reserved2
Definition: PDBTypes.h:369
llvm::pdb::PDB_DataKind::ObjectPtr
@ ObjectPtr
llvm::pdb::PDBSymbolUsingNamespace
Definition: PDBSymbolUsingNamespace.h:20
llvm::pdb::PDB_SymType::PublicSymbol
@ PublicSymbol
llvm::pdb::Variant::Value
union llvm::pdb::Variant::@247 Value
llvm::pdb::Undname_NoThrowSig
@ Undname_NoThrowSig
Definition: PDBTypes.h:372
llvm::pdb::Variant::Int32
int32_t Int32
Definition: PDBTypes.h:457
llvm::pdb::Variant::Variant
Variant(float V)
Definition: PDBTypes.h:424
llvm::pdb::PDB_Machine::Invalid
@ Invalid
llvm::pdb::Undname_32BitDecode
@ Undname_32BitDecode
Definition: PDBTypes.h:375
llvm::pdb::PDB_SymType::Friend
@ Friend
llvm::pdb::IPDBEnumChildren< PDBSymbol >
llvm::pdb::PDB_SymType::VectorType
@ VectorType
llvm::pdb::String
@ String
Definition: PDBTypes.h:407
llvm::pdb::NS_CaseRegex
@ NS_CaseRegex
Definition: PDBTypes.h:112
llvm::pdb::PDBSymbolCompiland
Definition: PDBSymbolCompiland.h:21
llvm::pdb::Undname_NoReturnUDTModel
@ Undname_NoReturnUDTModel
Definition: PDBTypes.h:374
llvm::pdb::UInt64
@ UInt64
Definition: PDBTypes.h:405
llvm::pdb::UInt8
@ UInt8
Definition: PDBTypes.h:402
llvm::pdb::PDBSymbolTypeUDT
Definition: PDBSymbolTypeUDT.h:24
llvm::pdb::PDB_SymType::Block
@ Block
llvm::pdb::Variant::Single
float Single
Definition: PDBTypes.h:459
llvm::pdb::PDB_TableType::TableInvalid
@ TableInvalid
llvm::pdb::Variant::operator==
bool operator==(const Variant &Other) const
Definition: PDBTypes.h:554
llvm::pdb::PDB_BuiltinType::BSTR
@ BSTR
llvm::pdb::PDB_LocType::IlRel
@ IlRel
llvm::Value
LLVM Value Representation.
Definition: Value.h:75
llvm::pdb::PDB_SymType::Export
@ Export
llvm::pdb::PDB_Machine::x86
@ x86
llvm::pdb::PDB_SymType::Max
@ Max
Other
Optional< std::vector< StOtherPiece > > Other
Definition: ELFYAML.cpp:1168
llvm::pdb::PDBSymbolCustom
PDBSymbolCustom represents symbols that are compiler-specific and do not fit anywhere else in the lex...
Definition: PDBSymbolCustom.h:24
llvm::pdb::PDB_TableType::FrameData
@ FrameData
llvm::pdb::PDB_StackFrameType::KernelTrap
@ KernelTrap