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, OPERANDS, ARITY, VERSION, VENDOR) \
139#include "llvm/BinaryFormat/Dwarf.def"
153#define HANDLE_DW_OP_LLVM_USEROP(ID, NAME) DW_OP_LLVM_##NAME = ID,
154#include "llvm/BinaryFormat/Dwarf.def"
158#define HANDLE_DW_ATE(ID, NAME, VERSION, VENDOR) DW_ATE_##NAME = ID,
159#include "llvm/BinaryFormat/Dwarf.def"
175#define HANDLE_DW_END(ID, NAME) DW_END_##NAME = ID,
176#include "llvm/BinaryFormat/Dwarf.def"
196#define HANDLE_DW_VIRTUALITY(ID, NAME) DW_VIRTUALITY_##NAME = ID,
197#include "llvm/BinaryFormat/Dwarf.def"
202#define HANDLE_DW_DEFAULTED(ID, NAME) DW_DEFAULTED_##NAME = ID,
203#include "llvm/BinaryFormat/Dwarf.def"
208#define HANDLE_DW_LANG(ID, NAME, LOWER_BOUND, VERSION, VENDOR) \
210#include "llvm/BinaryFormat/Dwarf.def"
216#define HANDLE_DW_LNAME(ID, NAME, DESC, LOWER_BOUND) DW_LNAME_##NAME = ID,
217#include "llvm/BinaryFormat/Dwarf.def"
228 return DW_LANG_Ada83;
230 return DW_LANG_Ada95;
232 return DW_LANG_Ada2005;
234 return DW_LANG_Ada2012;
237 return DW_LANG_BLISS;
241 if (version <= 198912)
243 if (version <= 199901)
245 if (version <= 201112)
247 if (version <= 201710)
250 case DW_LNAME_C_plus_plus:
252 return DW_LANG_C_plus_plus;
253 if (version <= 199711)
254 return DW_LANG_C_plus_plus;
255 if (version <= 200310)
256 return DW_LANG_C_plus_plus_03;
257 if (version <= 201103)
258 return DW_LANG_C_plus_plus_11;
259 if (version <= 201402)
260 return DW_LANG_C_plus_plus_14;
261 if (version <= 201703)
262 return DW_LANG_C_plus_plus_17;
263 if (version <= 202002)
264 return DW_LANG_C_plus_plus_20;
268 return DW_LANG_Cobol74;
270 return DW_LANG_Cobol85;
272 case DW_LNAME_Crystal:
273 return DW_LANG_Crystal;
277 return DW_LANG_Dylan;
278 case DW_LNAME_Fortran:
280 return DW_LANG_Fortran77;
282 return DW_LANG_Fortran90;
284 return DW_LANG_Fortran95;
286 return DW_LANG_Fortran03;
288 return DW_LANG_Fortran08;
290 return DW_LANG_Fortran18;
294 case DW_LNAME_Haskell:
295 return DW_LANG_Haskell;
301 return DW_LANG_Julia;
302 case DW_LNAME_Kotlin:
303 return DW_LANG_Kotlin;
304 case DW_LNAME_Modula2:
305 return DW_LANG_Modula2;
306 case DW_LNAME_Modula3:
307 return DW_LANG_Modula3;
310 case DW_LNAME_ObjC_plus_plus:
311 return DW_LANG_ObjC_plus_plus;
313 return DW_LANG_OCaml;
314 case DW_LNAME_OpenCL_C:
315 return DW_LANG_OpenCL;
316 case DW_LNAME_Pascal:
317 return DW_LANG_Pascal83;
320 case DW_LNAME_Python:
321 return DW_LANG_Python;
322 case DW_LNAME_RenderScript:
323 return DW_LANG_RenderScript;
327 return DW_LANG_Swift;
332 case DW_LNAME_Assembly:
333 return DW_LANG_Assembly;
334 case DW_LNAME_C_sharp:
335 return DW_LANG_C_sharp;
340 case DW_LNAME_GLSL_ES:
341 return DW_LANG_GLSL_ES;
344 case DW_LNAME_OpenCL_CPP:
345 return DW_LANG_OpenCL_CPP;
346 case DW_LNAME_CPP_for_OpenCL:
357 return DW_LANG_Metal;
363inline std::optional<std::pair<SourceLanguageName, uint32_t>>
367 return {{DW_LNAME_Ada, 1983}};
369 return {{DW_LNAME_Ada, 1995}};
370 case DW_LANG_Ada2005:
371 return {{DW_LNAME_Ada, 2005}};
372 case DW_LANG_Ada2012:
373 return {{DW_LNAME_Ada, 2012}};
375 return {{DW_LNAME_BLISS, 0}};
377 return {{DW_LNAME_C, 0}};
379 return {{DW_LNAME_C, 198912}};
381 return {{DW_LNAME_C, 199901}};
383 return {{DW_LNAME_C, 201112}};
385 return {{DW_LNAME_C, 201712}};
386 case DW_LANG_C_plus_plus:
387 return {{DW_LNAME_C_plus_plus, 0}};
388 case DW_LANG_C_plus_plus_03:
389 return {{DW_LNAME_C_plus_plus, 200310}};
390 case DW_LANG_C_plus_plus_11:
391 return {{DW_LNAME_C_plus_plus, 201103}};
392 case DW_LANG_C_plus_plus_14:
393 return {{DW_LNAME_C_plus_plus, 201402}};
394 case DW_LANG_C_plus_plus_17:
395 return {{DW_LNAME_C_plus_plus, 201703}};
396 case DW_LANG_C_plus_plus_20:
397 return {{DW_LNAME_C_plus_plus, 202002}};
398 case DW_LANG_Cobol74:
399 return {{DW_LNAME_Cobol, 1974}};
400 case DW_LANG_Cobol85:
401 return {{DW_LNAME_Cobol, 1985}};
402 case DW_LANG_Crystal:
403 return {{DW_LNAME_Crystal, 0}};
405 return {{DW_LNAME_D, 0}};
407 return {{DW_LNAME_Dylan, 0}};
408 case DW_LANG_Fortran77:
409 return {{DW_LNAME_Fortran, 1977}};
410 case DW_LANG_Fortran90:
411 return {{DW_LNAME_Fortran, 1990}};
412 case DW_LANG_Fortran95:
413 return {{DW_LNAME_Fortran, 1995}};
414 case DW_LANG_Fortran03:
415 return {{DW_LNAME_Fortran, 2003}};
416 case DW_LANG_Fortran08:
417 return {{DW_LNAME_Fortran, 2008}};
418 case DW_LANG_Fortran18:
419 return {{DW_LNAME_Fortran, 2018}};
421 return {{DW_LNAME_Go, 0}};
422 case DW_LANG_Haskell:
423 return {{DW_LNAME_Haskell, 0}};
427 return {{DW_LNAME_Java, 0}};
429 return {{DW_LNAME_Julia, 0}};
431 return {{DW_LNAME_Kotlin, 0}};
432 case DW_LANG_Modula2:
433 return {{DW_LNAME_Modula2, 0}};
434 case DW_LANG_Modula3:
435 return {{DW_LNAME_Modula3, 0}};
437 return {{DW_LNAME_ObjC, 0}};
438 case DW_LANG_ObjC_plus_plus:
439 return {{DW_LNAME_ObjC_plus_plus, 0}};
441 return {{DW_LNAME_OCaml, 0}};
443 return {{DW_LNAME_OpenCL_C, 0}};
444 case DW_LANG_Pascal83:
445 return {{DW_LNAME_Pascal, 1983}};
447 return {{DW_LNAME_PLI, 0}};
449 return {{DW_LNAME_Python, 0}};
450 case DW_LANG_RenderScript:
451 case DW_LANG_GOOGLE_RenderScript:
452 return {{DW_LNAME_RenderScript, 0}};
454 return {{DW_LNAME_Rust, 0}};
456 return {{DW_LNAME_Swift, 0}};
458 return {{DW_LNAME_UPC, 0}};
460 return {{DW_LNAME_Zig, 0}};
461 case DW_LANG_Assembly:
462 case DW_LANG_Mips_Assembler:
463 return {{DW_LNAME_Assembly, 0}};
464 case DW_LANG_C_sharp:
465 return {{DW_LNAME_C_sharp, 0}};
467 return {{DW_LNAME_Mojo, 0}};
469 return {{DW_LNAME_GLSL, 0}};
470 case DW_LANG_GLSL_ES:
471 return {{DW_LNAME_GLSL_ES, 0}};
473 return {{DW_LNAME_HLSL, 0}};
474 case DW_LANG_OpenCL_CPP:
475 return {{DW_LNAME_OpenCL_CPP, 0}};
477 return {{DW_LNAME_SYCL, 0}};
479 return {{DW_LNAME_Ruby, 0}};
481 return {{DW_LNAME_Move, 0}};
483 return {{DW_LNAME_Hylo, 0}};
485 return {{DW_LNAME_Metal, 0}};
486 case DW_LANG_BORLAND_Delphi:
487 case DW_LANG_CPP_for_OpenCL:
503 case DW_LANG_C_plus_plus:
504 case DW_LANG_C_plus_plus_03:
505 case DW_LANG_C_plus_plus_11:
506 case DW_LANG_C_plus_plus_14:
507 case DW_LANG_C_plus_plus_17:
508 case DW_LANG_C_plus_plus_20:
514 case DW_LANG_Cobol74:
515 case DW_LANG_Cobol85:
516 case DW_LANG_Fortran77:
517 case DW_LANG_Fortran90:
518 case DW_LANG_Pascal83:
519 case DW_LANG_Modula2:
523 case DW_LANG_Fortran95:
526 case DW_LANG_ObjC_plus_plus:
532 case DW_LANG_Modula3:
533 case DW_LANG_Haskell:
540 case DW_LANG_Fortran03:
541 case DW_LANG_Fortran08:
542 case DW_LANG_RenderScript:
544 case DW_LANG_Mips_Assembler:
545 case DW_LANG_GOOGLE_RenderScript:
546 case DW_LANG_BORLAND_Delphi:
551 case DW_LANG_Crystal:
553 case DW_LANG_Fortran18:
554 case DW_LANG_Ada2005:
555 case DW_LANG_Ada2012:
557 case DW_LANG_Assembly:
558 case DW_LANG_C_sharp:
561 case DW_LANG_GLSL_ES:
563 case DW_LANG_OpenCL_CPP:
564 case DW_LANG_CPP_for_OpenCL:
583 case DW_LANG_Fortran77:
584 case DW_LANG_Fortran90:
585 case DW_LANG_Fortran95:
586 case DW_LANG_Fortran03:
587 case DW_LANG_Fortran08:
588 case DW_LANG_Fortran18:
594 case DW_LANG_C_plus_plus:
595 case DW_LANG_Cobol74:
596 case DW_LANG_Cobol85:
597 case DW_LANG_Pascal83:
598 case DW_LANG_Modula2:
604 case DW_LANG_ObjC_plus_plus:
610 case DW_LANG_Modula3:
611 case DW_LANG_Haskell:
612 case DW_LANG_C_plus_plus_03:
613 case DW_LANG_C_plus_plus_11:
620 case DW_LANG_C_plus_plus_14:
621 case DW_LANG_RenderScript:
623 case DW_LANG_Mips_Assembler:
624 case DW_LANG_GOOGLE_RenderScript:
625 case DW_LANG_BORLAND_Delphi:
630 case DW_LANG_Crystal:
631 case DW_LANG_C_plus_plus_17:
632 case DW_LANG_C_plus_plus_20:
634 case DW_LANG_Ada2005:
635 case DW_LANG_Ada2012:
637 case DW_LANG_Assembly:
638 case DW_LANG_C_sharp:
641 case DW_LANG_GLSL_ES:
643 case DW_LANG_OpenCL_CPP:
644 case DW_LANG_CPP_for_OpenCL:
669 case DW_LANG_C_plus_plus:
670 case DW_LANG_C_plus_plus_03:
671 case DW_LANG_C_plus_plus_11:
672 case DW_LANG_C_plus_plus_14:
673 case DW_LANG_C_plus_plus_17:
674 case DW_LANG_C_plus_plus_20:
676 case DW_LANG_Cobol74:
677 case DW_LANG_Cobol85:
678 case DW_LANG_Fortran77:
679 case DW_LANG_Fortran90:
680 case DW_LANG_Pascal83:
681 case DW_LANG_Modula2:
684 case DW_LANG_Fortran95:
686 case DW_LANG_ObjC_plus_plus:
692 case DW_LANG_Modula3:
693 case DW_LANG_Haskell:
699 case DW_LANG_Fortran03:
700 case DW_LANG_Fortran08:
701 case DW_LANG_RenderScript:
703 case DW_LANG_Mips_Assembler:
704 case DW_LANG_GOOGLE_RenderScript:
705 case DW_LANG_BORLAND_Delphi:
710 case DW_LANG_Crystal:
711 case DW_LANG_Fortran18:
712 case DW_LANG_Ada2005:
713 case DW_LANG_Ada2012:
715 case DW_LANG_Assembly:
716 case DW_LANG_C_sharp:
719 case DW_LANG_GLSL_ES:
721 case DW_LANG_OpenCL_CPP:
722 case DW_LANG_CPP_for_OpenCL:
734 return isFortran(S) ? DW_ATE_signed : DW_ATE_unsigned;
747#define HANDLE_DW_CC(ID, NAME) DW_CC_##NAME = ID,
748#include "llvm/BinaryFormat/Dwarf.def"
775#define HANDLE_DW_LNS(ID, NAME) DW_LNS_##NAME = ID,
776#include "llvm/BinaryFormat/Dwarf.def"
781#define HANDLE_DW_LNE(ID, NAME) DW_LNE_##NAME = ID,
782#include "llvm/BinaryFormat/Dwarf.def"
788#define HANDLE_DW_LNCT(ID, NAME) DW_LNCT_##NAME = ID,
789#include "llvm/BinaryFormat/Dwarf.def"
805#define HANDLE_DW_MACRO(ID, NAME) DW_MACRO_##NAME = ID,
806#include "llvm/BinaryFormat/Dwarf.def"
813#define HANDLE_DW_MACRO_GNU(ID, NAME) DW_MACRO_GNU_##NAME = ID,
814#include "llvm/BinaryFormat/Dwarf.def"
821#define HANDLE_DW_RLE(ID, NAME) DW_RLE_##NAME = ID,
822#include "llvm/BinaryFormat/Dwarf.def"
827#define HANDLE_DW_LLE(ID, NAME) DW_LLE_##NAME = ID,
828#include "llvm/BinaryFormat/Dwarf.def"
833#define HANDLE_DW_CFA(ID, NAME) DW_CFA_##NAME = ID,
834#define HANDLE_DW_CFA_PRED(ID, NAME, ARCH) DW_CFA_##NAME = ID,
835#include "llvm/BinaryFormat/Dwarf.def"
870#define HANDLE_DW_APPLE_PROPERTY(ID, NAME) DW_APPLE_PROPERTY_##NAME = ID,
871#include "llvm/BinaryFormat/Dwarf.def"
876#define HANDLE_DW_UT(ID, NAME) DW_UT_##NAME = ID,
877#include "llvm/BinaryFormat/Dwarf.def"
883#define HANDLE_DW_IDX(ID, NAME) DW_IDX_##NAME = ID,
884#include "llvm/BinaryFormat/Dwarf.def"
895 case DW_UT_split_compile:
896 case DW_UT_split_type:
905 case DW_TAG_compile_unit:
906 case DW_TAG_type_unit:
907 case DW_TAG_partial_unit:
908 case DW_TAG_skeleton_unit:
942 if (UniqueHashCount > 1024)
943 return UniqueHashCount / 4;
944 if (UniqueHashCount > 16)
945 return UniqueHashCount / 2;
946 return std::max<uint32_t>(UniqueHashCount, 1);
976 unsigned SubOpEncoding);
1168 return Kind << KIND_OFFSET |
Linkage << LINKAGE_OFFSET;
1174 KIND_MASK = 7 << KIND_OFFSET,
1176 LINKAGE_MASK = 1 << LINKAGE_OFFSET
1180template <
typename Enum>
struct EnumTraits :
public std::false_type {};
1183 static constexpr char Type[3] =
"AT";
1188 static constexpr char Type[5] =
"FORM";
1193 static constexpr char Type[4] =
"IDX";
1198 static constexpr char Type[4] =
"TAG";
1203 static constexpr char Type[4] =
"LNS";
1208 static constexpr char Type[3] =
"OP";
1213 return std::numeric_limits<uint64_t>::max() >> (8 - AddressByteSize) * 8;
1223template <
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
std::optional< unsigned > OperationArity(LocationAtom O)
The arity of the given LocationAtom.
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_extract_bits_zext
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.
@ DW_OP_LLVM_extract_bits_sext
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.
std::optional< unsigned > OperationOperands(LocationAtom O)
The number of operands for the given LocationAtom.
@ 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