19#ifndef LLVM_BINARYFORMAT_DWARF_H
20#define LLVM_BINARYFORMAT_DWARF_H
104#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) DW_TAG_##NAME = ID,
105#include "llvm/BinaryFormat/Dwarf.def"
115#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) \
116 case DW_TAG_##NAME: \
117 return (KIND == DW_KIND_TYPE);
118#include "llvm/BinaryFormat/Dwarf.def"
124#define HANDLE_DW_AT(ID, NAME, VERSION, VENDOR) DW_AT_##NAME = ID,
125#include "llvm/BinaryFormat/Dwarf.def"
131#define HANDLE_DW_FORM(ID, NAME, VERSION, VENDOR) DW_FORM_##NAME = ID,
132#include "llvm/BinaryFormat/Dwarf.def"
137#define HANDLE_DW_OP(ID, NAME, VERSION, VENDOR) DW_OP_##NAME = ID,
138#include "llvm/BinaryFormat/Dwarf.def"
150#define HANDLE_DW_OP_LLVM_USEROP(ID, NAME) DW_OP_LLVM_##NAME = ID,
151#include "llvm/BinaryFormat/Dwarf.def"
155#define HANDLE_DW_ATE(ID, NAME, VERSION, VENDOR) DW_ATE_##NAME = ID,
156#include "llvm/BinaryFormat/Dwarf.def"
172#define HANDLE_DW_END(ID, NAME) DW_END_##NAME = ID,
173#include "llvm/BinaryFormat/Dwarf.def"
193#define HANDLE_DW_VIRTUALITY(ID, NAME) DW_VIRTUALITY_##NAME = ID,
194#include "llvm/BinaryFormat/Dwarf.def"
199#define HANDLE_DW_DEFAULTED(ID, NAME) DW_DEFAULTED_##NAME = ID,
200#include "llvm/BinaryFormat/Dwarf.def"
205#define HANDLE_DW_LANG(ID, NAME, LOWER_BOUND, VERSION, VENDOR) \
207#include "llvm/BinaryFormat/Dwarf.def"
213#define HANDLE_DW_LNAME(ID, NAME, DESC, LOWER_BOUND) DW_LNAME_##NAME = ID,
214#include "llvm/BinaryFormat/Dwarf.def"
225 return DW_LANG_Ada83;
227 return DW_LANG_Ada95;
229 return DW_LANG_Ada2005;
231 return DW_LANG_Ada2012;
234 return DW_LANG_BLISS;
238 if (version <= 198912)
240 if (version <= 199901)
242 if (version <= 201112)
244 if (version <= 201710)
247 case DW_LNAME_C_plus_plus:
249 return DW_LANG_C_plus_plus;
250 if (version <= 199711)
251 return DW_LANG_C_plus_plus;
252 if (version <= 200310)
253 return DW_LANG_C_plus_plus_03;
254 if (version <= 201103)
255 return DW_LANG_C_plus_plus_11;
256 if (version <= 201402)
257 return DW_LANG_C_plus_plus_14;
258 if (version <= 201703)
259 return DW_LANG_C_plus_plus_17;
260 if (version <= 202002)
261 return DW_LANG_C_plus_plus_20;
265 return DW_LANG_Cobol74;
267 return DW_LANG_Cobol85;
269 case DW_LNAME_Crystal:
270 return DW_LANG_Crystal;
274 return DW_LANG_Dylan;
275 case DW_LNAME_Fortran:
277 return DW_LANG_Fortran77;
279 return DW_LANG_Fortran90;
281 return DW_LANG_Fortran95;
283 return DW_LANG_Fortran03;
285 return DW_LANG_Fortran08;
287 return DW_LANG_Fortran18;
291 case DW_LNAME_Haskell:
292 return DW_LANG_Haskell;
298 return DW_LANG_Julia;
299 case DW_LNAME_Kotlin:
300 return DW_LANG_Kotlin;
301 case DW_LNAME_Modula2:
302 return DW_LANG_Modula2;
303 case DW_LNAME_Modula3:
304 return DW_LANG_Modula3;
307 case DW_LNAME_ObjC_plus_plus:
308 return DW_LANG_ObjC_plus_plus;
310 return DW_LANG_OCaml;
311 case DW_LNAME_OpenCL_C:
312 return DW_LANG_OpenCL;
313 case DW_LNAME_Pascal:
314 return DW_LANG_Pascal83;
317 case DW_LNAME_Python:
318 return DW_LANG_Python;
319 case DW_LNAME_RenderScript:
320 return DW_LANG_RenderScript;
324 return DW_LANG_Swift;
329 case DW_LNAME_Assembly:
330 return DW_LANG_Assembly;
331 case DW_LNAME_C_sharp:
332 return DW_LANG_C_sharp;
337 case DW_LNAME_GLSL_ES:
338 return DW_LANG_GLSL_ES;
341 case DW_LNAME_OpenCL_CPP:
342 return DW_LANG_OpenCL_CPP;
343 case DW_LNAME_CPP_for_OpenCL:
358inline std::optional<std::pair<SourceLanguageName, uint32_t>>
362 return {{DW_LNAME_Ada, 1983}};
364 return {{DW_LNAME_Ada, 1995}};
365 case DW_LANG_Ada2005:
366 return {{DW_LNAME_Ada, 2005}};
367 case DW_LANG_Ada2012:
368 return {{DW_LNAME_Ada, 2012}};
370 return {{DW_LNAME_BLISS, 0}};
372 return {{DW_LNAME_C, 0}};
374 return {{DW_LNAME_C, 198912}};
376 return {{DW_LNAME_C, 199901}};
378 return {{DW_LNAME_C, 201112}};
380 return {{DW_LNAME_C, 201712}};
381 case DW_LANG_C_plus_plus:
382 return {{DW_LNAME_C_plus_plus, 0}};
383 case DW_LANG_C_plus_plus_03:
384 return {{DW_LNAME_C_plus_plus, 200310}};
385 case DW_LANG_C_plus_plus_11:
386 return {{DW_LNAME_C_plus_plus, 201103}};
387 case DW_LANG_C_plus_plus_14:
388 return {{DW_LNAME_C_plus_plus, 201402}};
389 case DW_LANG_C_plus_plus_17:
390 return {{DW_LNAME_C_plus_plus, 201703}};
391 case DW_LANG_C_plus_plus_20:
392 return {{DW_LNAME_C_plus_plus, 202002}};
393 case DW_LANG_Cobol74:
394 return {{DW_LNAME_Cobol, 1974}};
395 case DW_LANG_Cobol85:
396 return {{DW_LNAME_Cobol, 1985}};
397 case DW_LANG_Crystal:
398 return {{DW_LNAME_Crystal, 0}};
400 return {{DW_LNAME_D, 0}};
402 return {{DW_LNAME_Dylan, 0}};
403 case DW_LANG_Fortran77:
404 return {{DW_LNAME_Fortran, 1977}};
405 case DW_LANG_Fortran90:
406 return {{DW_LNAME_Fortran, 1990}};
407 case DW_LANG_Fortran95:
408 return {{DW_LNAME_Fortran, 1995}};
409 case DW_LANG_Fortran03:
410 return {{DW_LNAME_Fortran, 2003}};
411 case DW_LANG_Fortran08:
412 return {{DW_LNAME_Fortran, 2008}};
413 case DW_LANG_Fortran18:
414 return {{DW_LNAME_Fortran, 2018}};
416 return {{DW_LNAME_Go, 0}};
417 case DW_LANG_Haskell:
418 return {{DW_LNAME_Haskell, 0}};
422 return {{DW_LNAME_Java, 0}};
424 return {{DW_LNAME_Julia, 0}};
426 return {{DW_LNAME_Kotlin, 0}};
427 case DW_LANG_Modula2:
428 return {{DW_LNAME_Modula2, 0}};
429 case DW_LANG_Modula3:
430 return {{DW_LNAME_Modula3, 0}};
432 return {{DW_LNAME_ObjC, 0}};
433 case DW_LANG_ObjC_plus_plus:
434 return {{DW_LNAME_ObjC_plus_plus, 0}};
436 return {{DW_LNAME_OCaml, 0}};
438 return {{DW_LNAME_OpenCL_C, 0}};
439 case DW_LANG_Pascal83:
440 return {{DW_LNAME_Pascal, 1983}};
442 return {{DW_LNAME_PLI, 0}};
444 return {{DW_LNAME_Python, 0}};
445 case DW_LANG_RenderScript:
446 case DW_LANG_GOOGLE_RenderScript:
447 return {{DW_LNAME_RenderScript, 0}};
449 return {{DW_LNAME_Rust, 0}};
451 return {{DW_LNAME_Swift, 0}};
453 return {{DW_LNAME_UPC, 0}};
455 return {{DW_LNAME_Zig, 0}};
456 case DW_LANG_Assembly:
457 case DW_LANG_Mips_Assembler:
458 return {{DW_LNAME_Assembly, 0}};
459 case DW_LANG_C_sharp:
460 return {{DW_LNAME_C_sharp, 0}};
462 return {{DW_LNAME_Mojo, 0}};
464 return {{DW_LNAME_GLSL, 0}};
465 case DW_LANG_GLSL_ES:
466 return {{DW_LNAME_GLSL_ES, 0}};
468 return {{DW_LNAME_HLSL, 0}};
469 case DW_LANG_OpenCL_CPP:
470 return {{DW_LNAME_OpenCL_CPP, 0}};
472 return {{DW_LNAME_SYCL, 0}};
474 return {{DW_LNAME_Ruby, 0}};
476 return {{DW_LNAME_Move, 0}};
478 return {{DW_LNAME_Hylo, 0}};
479 case DW_LANG_BORLAND_Delphi:
480 case DW_LANG_CPP_for_OpenCL:
496 case DW_LANG_C_plus_plus:
497 case DW_LANG_C_plus_plus_03:
498 case DW_LANG_C_plus_plus_11:
499 case DW_LANG_C_plus_plus_14:
500 case DW_LANG_C_plus_plus_17:
501 case DW_LANG_C_plus_plus_20:
507 case DW_LANG_Cobol74:
508 case DW_LANG_Cobol85:
509 case DW_LANG_Fortran77:
510 case DW_LANG_Fortran90:
511 case DW_LANG_Pascal83:
512 case DW_LANG_Modula2:
516 case DW_LANG_Fortran95:
519 case DW_LANG_ObjC_plus_plus:
525 case DW_LANG_Modula3:
526 case DW_LANG_Haskell:
533 case DW_LANG_Fortran03:
534 case DW_LANG_Fortran08:
535 case DW_LANG_RenderScript:
537 case DW_LANG_Mips_Assembler:
538 case DW_LANG_GOOGLE_RenderScript:
539 case DW_LANG_BORLAND_Delphi:
544 case DW_LANG_Crystal:
546 case DW_LANG_Fortran18:
547 case DW_LANG_Ada2005:
548 case DW_LANG_Ada2012:
550 case DW_LANG_Assembly:
551 case DW_LANG_C_sharp:
554 case DW_LANG_GLSL_ES:
556 case DW_LANG_OpenCL_CPP:
557 case DW_LANG_CPP_for_OpenCL:
575 case DW_LANG_Fortran77:
576 case DW_LANG_Fortran90:
577 case DW_LANG_Fortran95:
578 case DW_LANG_Fortran03:
579 case DW_LANG_Fortran08:
580 case DW_LANG_Fortran18:
586 case DW_LANG_C_plus_plus:
587 case DW_LANG_Cobol74:
588 case DW_LANG_Cobol85:
589 case DW_LANG_Pascal83:
590 case DW_LANG_Modula2:
596 case DW_LANG_ObjC_plus_plus:
602 case DW_LANG_Modula3:
603 case DW_LANG_Haskell:
604 case DW_LANG_C_plus_plus_03:
605 case DW_LANG_C_plus_plus_11:
612 case DW_LANG_C_plus_plus_14:
613 case DW_LANG_RenderScript:
615 case DW_LANG_Mips_Assembler:
616 case DW_LANG_GOOGLE_RenderScript:
617 case DW_LANG_BORLAND_Delphi:
622 case DW_LANG_Crystal:
623 case DW_LANG_C_plus_plus_17:
624 case DW_LANG_C_plus_plus_20:
626 case DW_LANG_Ada2005:
627 case DW_LANG_Ada2012:
629 case DW_LANG_Assembly:
630 case DW_LANG_C_sharp:
633 case DW_LANG_GLSL_ES:
635 case DW_LANG_OpenCL_CPP:
636 case DW_LANG_CPP_for_OpenCL:
660 case DW_LANG_C_plus_plus:
661 case DW_LANG_C_plus_plus_03:
662 case DW_LANG_C_plus_plus_11:
663 case DW_LANG_C_plus_plus_14:
664 case DW_LANG_C_plus_plus_17:
665 case DW_LANG_C_plus_plus_20:
667 case DW_LANG_Cobol74:
668 case DW_LANG_Cobol85:
669 case DW_LANG_Fortran77:
670 case DW_LANG_Fortran90:
671 case DW_LANG_Pascal83:
672 case DW_LANG_Modula2:
675 case DW_LANG_Fortran95:
677 case DW_LANG_ObjC_plus_plus:
683 case DW_LANG_Modula3:
684 case DW_LANG_Haskell:
690 case DW_LANG_Fortran03:
691 case DW_LANG_Fortran08:
692 case DW_LANG_RenderScript:
694 case DW_LANG_Mips_Assembler:
695 case DW_LANG_GOOGLE_RenderScript:
696 case DW_LANG_BORLAND_Delphi:
701 case DW_LANG_Crystal:
702 case DW_LANG_Fortran18:
703 case DW_LANG_Ada2005:
704 case DW_LANG_Ada2012:
706 case DW_LANG_Assembly:
707 case DW_LANG_C_sharp:
710 case DW_LANG_GLSL_ES:
712 case DW_LANG_OpenCL_CPP:
713 case DW_LANG_CPP_for_OpenCL:
724 return isFortran(S) ? DW_ATE_signed : DW_ATE_unsigned;
737#define HANDLE_DW_CC(ID, NAME) DW_CC_##NAME = ID,
738#include "llvm/BinaryFormat/Dwarf.def"
765#define HANDLE_DW_LNS(ID, NAME) DW_LNS_##NAME = ID,
766#include "llvm/BinaryFormat/Dwarf.def"
771#define HANDLE_DW_LNE(ID, NAME) DW_LNE_##NAME = ID,
772#include "llvm/BinaryFormat/Dwarf.def"
778#define HANDLE_DW_LNCT(ID, NAME) DW_LNCT_##NAME = ID,
779#include "llvm/BinaryFormat/Dwarf.def"
795#define HANDLE_DW_MACRO(ID, NAME) DW_MACRO_##NAME = ID,
796#include "llvm/BinaryFormat/Dwarf.def"
803#define HANDLE_DW_MACRO_GNU(ID, NAME) DW_MACRO_GNU_##NAME = ID,
804#include "llvm/BinaryFormat/Dwarf.def"
811#define HANDLE_DW_RLE(ID, NAME) DW_RLE_##NAME = ID,
812#include "llvm/BinaryFormat/Dwarf.def"
817#define HANDLE_DW_LLE(ID, NAME) DW_LLE_##NAME = ID,
818#include "llvm/BinaryFormat/Dwarf.def"
823#define HANDLE_DW_CFA(ID, NAME) DW_CFA_##NAME = ID,
824#define HANDLE_DW_CFA_PRED(ID, NAME, ARCH) DW_CFA_##NAME = ID,
825#include "llvm/BinaryFormat/Dwarf.def"
860#define HANDLE_DW_APPLE_PROPERTY(ID, NAME) DW_APPLE_PROPERTY_##NAME = ID,
861#include "llvm/BinaryFormat/Dwarf.def"
866#define HANDLE_DW_UT(ID, NAME) DW_UT_##NAME = ID,
867#include "llvm/BinaryFormat/Dwarf.def"
873#define HANDLE_DW_IDX(ID, NAME) DW_IDX_##NAME = ID,
874#include "llvm/BinaryFormat/Dwarf.def"
885 case DW_UT_split_compile:
886 case DW_UT_split_type:
895 case DW_TAG_compile_unit:
896 case DW_TAG_type_unit:
897 case DW_TAG_partial_unit:
898 case DW_TAG_skeleton_unit:
932 if (UniqueHashCount > 1024)
933 return UniqueHashCount / 4;
934 if (UniqueHashCount > 16)
935 return UniqueHashCount / 2;
936 return std::max<uint32_t>(UniqueHashCount, 1);
966 unsigned SubOpEncoding);
1150 return Kind << KIND_OFFSET |
Linkage << LINKAGE_OFFSET;
1156 KIND_MASK = 7 << KIND_OFFSET,
1158 LINKAGE_MASK = 1 << LINKAGE_OFFSET
1162template <
typename Enum>
struct EnumTraits :
public std::false_type {};
1165 static constexpr char Type[3] =
"AT";
1170 static constexpr char Type[5] =
"FORM";
1175 static constexpr char Type[4] =
"IDX";
1180 static constexpr char Type[4] =
"TAG";
1185 static constexpr char Type[4] =
"LNS";
1190 static constexpr char Type[3] =
"OP";
1195 return std::numeric_limits<uint64_t>::max() >> (8 - AddressByteSize) * 8;
1205template <
typename Enum>
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
Returns the sub type a function will return at a given Idx Should correspond to the result type of an ExtractValue instruction executed with just that one unsigned Idx
StringRef - Represent a constant reference to a string, i.e.
The instances of the Type class are immutable: once they are created, they are never changed.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
StringRef LNExtendedString(unsigned Encoding)
StringRef RangeListEncodingString(unsigned Encoding)
StringRef CaseString(unsigned Case)
StringRef VisibilityString(unsigned Visibility)
StringRef GDBIndexEntryLinkageString(GDBIndexEntryLinkage Linkage)
StringRef AttributeString(unsigned Attribute)
StringRef CallFrameString(unsigned Encoding, Triple::ArchType Arch)
StringRef FormEncodingString(unsigned Encoding)
StringRef ArrayOrderString(unsigned Order)
StringRef MacroString(unsigned Encoding)
StringRef LocListEncodingString(unsigned Encoding)
StringRef IndexString(unsigned Idx)
StringRef RLEString(unsigned RLE)
StringRef SubOperationEncodingString(unsigned OpEncoding, unsigned SubOpEncoding)
StringRef LanguageString(unsigned Language)
StringRef DecimalSignString(unsigned Sign)
StringRef VirtualityString(unsigned Virtuality)
StringRef AttributeEncodingString(unsigned Encoding)
StringRef ChildrenString(unsigned Children)
StringRef ApplePropertyString(unsigned)
StringRef AtomTypeString(unsigned Atom)
StringRef FormatString(DwarfFormat Format)
StringRef GnuMacroString(unsigned Encoding)
StringRef EndianityString(unsigned Endian)
StringRef ConventionString(unsigned Convention)
StringRef MacinfoString(unsigned Encoding)
StringRef OperationEncodingString(unsigned Encoding)
StringRef UnitTypeString(unsigned)
StringRef InlineCodeString(unsigned Code)
StringRef GDBIndexEntryKindString(GDBIndexEntryKind Kind)
StringRef TagString(unsigned Tag)
StringRef LNStandardString(unsigned Standard)
StringRef AccessibilityString(unsigned Access)
StringRef DefaultedMemberString(unsigned DefaultedEncodings)
unsigned getSubOperationEncoding(unsigned OpEncoding, StringRef SubOperationEncodingString)
unsigned getOperationEncoding(StringRef OperationEncodingString)
unsigned getAttributeEncoding(StringRef EncodingString)
unsigned getTag(StringRef TagString)
unsigned getCallingConvention(StringRef LanguageString)
unsigned getLanguage(StringRef LanguageString)
unsigned getVirtuality(StringRef VirtualityString)
unsigned getMacro(StringRef MacroString)
unsigned getMacinfo(StringRef MacinfoString)
unsigned AttributeEncodingVendor(TypeKind E)
unsigned FormVendor(Form F)
unsigned AttributeVendor(Attribute A)
unsigned OperationVendor(LocationAtom O)
unsigned TagVendor(Tag T)
unsigned LanguageVendor(SourceLanguage L)
unsigned OperationVersion(LocationAtom O)
unsigned AttributeVersion(Attribute A)
unsigned LanguageVersion(SourceLanguage L)
unsigned AttributeEncodingVersion(TypeKind E)
unsigned TagVersion(Tag T)
unsigned FormVersion(Form F)
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
@ DW_INL_declared_not_inlined
@ DW_INL_declared_inlined
const uint32_t DW_CIE_ID
Special ID values that distinguish a CIE from a FDE in DWARF CFI.
uint8_t getUnitLengthFieldByteSize(DwarfFormat Format)
Get the byte size of the unit length field depending on the DWARF format.
MacroEntryType
DWARF v5 macro information entry type encodings.
std::optional< unsigned > LanguageLowerBound(SourceLanguage L)
StringRef AtomValueString(uint16_t Atom, unsigned Val)
Returns the symbolic string representing Val when used as a value for atom Atom.
const uint64_t DW64_CIE_ID
LineNumberOps
Line Number Standard Opcode Encodings.
ApplePropertyAttributes
Constants for the DW_APPLE_PROPERTY_attributes attribute.
LoclistEntries
DWARF v5 loc list entry encoding values.
bool isFortran(SourceLanguage S)
bool isUnitType(uint8_t UnitType)
GnuMacroEntryType
GNU .debug_macro macro information entry type encodings.
UnitType
Constants for unit types in DWARF v5.
@ DW_FORM_lo_user
Not specified by DWARF.
@ DW_OP_LLVM_entry_value
Only used in LLVM metadata.
@ DW_OP_LLVM_implicit_pointer
Only used in LLVM metadata.
@ DW_OP_LLVM_tag_offset
Only used in LLVM metadata.
@ DW_OP_LLVM_fragment
Only used in LLVM metadata.
@ DW_OP_LLVM_arg
Only used in LLVM metadata.
@ DW_OP_LLVM_convert
Only used in LLVM metadata.
DwarfFormat
Constants that define the DWARF format as 32 or 64 bit.
bool isValidFormForVersion(Form F, unsigned Version, bool ExtensionsOk=true)
Tells whether the specified form is defined in the specified version, or is an extension if extension...
std::optional< SourceLanguage > toDW_LANG(SourceLanguageName name, uint32_t version)
Convert a DWARF 6 pair of language name and version to a DWARF 5 DW_LANG.
const uint32_t DW_INVALID_OFFSET
Identifier of an invalid DIE offset in the .debug_info section.
RnglistEntries
DWARF v5 range list entry encoding values.
std::optional< uint8_t > getFixedFormByteSize(dwarf::Form Form, FormParams Params)
Get the fixed byte size for a given form.
uint8_t getDwarfOffsetByteSize(DwarfFormat Format)
The size of a reference determined by the DWARF 32/64-bit format.
LineNumberExtendedOps
Line Number Extended Opcode Encodings.
bool isCPlusPlus(SourceLanguage S)
TypeKind getArrayIndexTypeEncoding(SourceLanguage S)
StringRef AttributeValueString(uint16_t Attr, unsigned Val)
Returns the symbolic string representing Val when used as a value for attribute Attr.
@ DW_TAG_user_base
Recommended base for user tags.
CallFrameInfo
Call frame instruction encodings.
@ DW_DS_trailing_separate
@ DW_DS_trailing_overpunch
@ DW_DS_leading_overpunch
uint32_t getDebugNamesBucketCount(uint32_t UniqueHashCount)
uint64_t computeTombstoneAddress(uint8_t AddressByteSize)
llvm::StringRef LanguageDescription(SourceLanguageName name)
@ DW_FLAG_type_implementation
@ DW_ATOM_die_offset
Marker as the end of a list of atoms.
@ DW_ATOM_type_type_flags
bool isC(SourceLanguage S)
@ DW_ARANGES_VERSION
Section version number for .debug_aranges.
@ DW_PUBNAMES_VERSION
Section version number for .debug_pubnames.
@ DWARF_VERSION
Other constants.
@ DW_TAG_invalid
LLVM mock tags (see also llvm/BinaryFormat/Dwarf.def).
@ DW_LENGTH_lo_reserved
Special values for an initial length field.
@ DW_MACINFO_invalid
Macinfo type for invalid results.
@ DW_VIRTUALITY_invalid
Virtuality for invalid results.
@ DW_LENGTH_hi_reserved
Upper bound of the reserved range.
@ DW_PUBTYPES_VERSION
Section version number for .debug_pubtypes.
@ DW_LENGTH_DWARF64
Indicator of 64-bit DWARF format.
@ DWARF_VENDOR_DWARF
Identifiers we use to distinguish vendor extensions.
std::optional< std::pair< SourceLanguageName, uint32_t > > toDW_LNAME(SourceLanguage language)
Convert a DWARF 5 DW_LANG to a DWARF 6 pair of language name and version.
This is an optimization pass for GlobalISel generic memory operations.
format_object< Ts... > format(const char *Fmt, const Ts &... Vals)
These are helper functions used to produce formatted output.
Implement std::hash so that hash_code can be used in STL containers.
Describes an entry of the various gnu_pub* debug sections.
PubIndexEntryDescriptor(GDBIndexEntryKind Kind, GDBIndexEntryLinkage Linkage)
PubIndexEntryDescriptor(uint8_t Value)
PubIndexEntryDescriptor(GDBIndexEntryKind Kind)
GDBIndexEntryLinkage Linkage