19#ifndef LLVM_BINARYFORMAT_DWARF_H
20#define LLVM_BINARYFORMAT_DWARF_H
105#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) DW_TAG_##NAME = ID,
106#include "llvm/BinaryFormat/Dwarf.def"
116#define HANDLE_DW_TAG(ID, NAME, VERSION, VENDOR, KIND) \
117 case DW_TAG_##NAME: \
118 return (KIND == DW_KIND_TYPE);
119#include "llvm/BinaryFormat/Dwarf.def"
125#define HANDLE_DW_AT(ID, NAME, VERSION, VENDOR) DW_AT_##NAME = ID,
126#include "llvm/BinaryFormat/Dwarf.def"
132#define HANDLE_DW_FORM(ID, NAME, VERSION, VENDOR) DW_FORM_##NAME = ID,
133#include "llvm/BinaryFormat/Dwarf.def"
138#define HANDLE_DW_OP(ID, NAME, OPERANDS, ARITY, VERSION, VENDOR) \
140#include "llvm/BinaryFormat/Dwarf.def"
154#define HANDLE_DW_OP_LLVM_USEROP(ID, NAME) DW_OP_LLVM_##NAME = ID,
155#include "llvm/BinaryFormat/Dwarf.def"
159#define HANDLE_DW_ATE(ID, NAME, VERSION, VENDOR) DW_ATE_##NAME = ID,
160#include "llvm/BinaryFormat/Dwarf.def"
176#define HANDLE_DW_END(ID, NAME) DW_END_##NAME = ID,
177#include "llvm/BinaryFormat/Dwarf.def"
197#define HANDLE_DW_VIRTUALITY(ID, NAME) DW_VIRTUALITY_##NAME = ID,
198#include "llvm/BinaryFormat/Dwarf.def"
203#define HANDLE_DW_APPLE_ENUM_KIND(ID, NAME) DW_APPLE_ENUM_KIND_##NAME = ID,
204#include "llvm/BinaryFormat/Dwarf.def"
209#define HANDLE_DW_DEFAULTED(ID, NAME) DW_DEFAULTED_##NAME = ID,
210#include "llvm/BinaryFormat/Dwarf.def"
215#define HANDLE_DW_LANG(ID, NAME, LOWER_BOUND, VERSION, VENDOR) \
217#include "llvm/BinaryFormat/Dwarf.def"
223#define HANDLE_DW_LNAME(ID, NAME, DESC, LOWER_BOUND) DW_LNAME_##NAME = ID,
224#include "llvm/BinaryFormat/Dwarf.def"
235 return DW_LANG_Ada83;
237 return DW_LANG_Ada95;
239 return DW_LANG_Ada2005;
241 return DW_LANG_Ada2012;
244 return DW_LANG_BLISS;
248 if (version <= 198912)
250 if (version <= 199901)
252 if (version <= 201112)
254 if (version <= 201710)
257 case DW_LNAME_C_plus_plus:
259 return DW_LANG_C_plus_plus;
260 if (version <= 199711)
261 return DW_LANG_C_plus_plus;
262 if (version <= 200310)
263 return DW_LANG_C_plus_plus_03;
264 if (version <= 201103)
265 return DW_LANG_C_plus_plus_11;
266 if (version <= 201402)
267 return DW_LANG_C_plus_plus_14;
268 if (version <= 201703)
269 return DW_LANG_C_plus_plus_17;
270 if (version <= 202002)
271 return DW_LANG_C_plus_plus_20;
275 return DW_LANG_Cobol74;
277 return DW_LANG_Cobol85;
279 case DW_LNAME_Crystal:
280 return DW_LANG_Crystal;
284 return DW_LANG_Dylan;
285 case DW_LNAME_Fortran:
287 return DW_LANG_Fortran77;
289 return DW_LANG_Fortran90;
291 return DW_LANG_Fortran95;
293 return DW_LANG_Fortran03;
295 return DW_LANG_Fortran08;
297 return DW_LANG_Fortran18;
301 case DW_LNAME_Haskell:
302 return DW_LANG_Haskell;
308 return DW_LANG_Julia;
309 case DW_LNAME_Kotlin:
310 return DW_LANG_Kotlin;
311 case DW_LNAME_Modula2:
312 return DW_LANG_Modula2;
313 case DW_LNAME_Modula3:
314 return DW_LANG_Modula3;
317 case DW_LNAME_ObjC_plus_plus:
318 return DW_LANG_ObjC_plus_plus;
320 return DW_LANG_OCaml;
321 case DW_LNAME_OpenCL_C:
322 return DW_LANG_OpenCL;
323 case DW_LNAME_Pascal:
324 return DW_LANG_Pascal83;
327 case DW_LNAME_Python:
328 return DW_LANG_Python;
329 case DW_LNAME_RenderScript:
330 return DW_LANG_RenderScript;
334 return DW_LANG_Swift;
339 case DW_LNAME_Assembly:
340 return DW_LANG_Assembly;
341 case DW_LNAME_C_sharp:
342 return DW_LANG_C_sharp;
347 case DW_LNAME_GLSL_ES:
348 return DW_LANG_GLSL_ES;
351 case DW_LNAME_OpenCL_CPP:
352 return DW_LANG_OpenCL_CPP;
353 case DW_LNAME_CPP_for_OpenCL:
364 return DW_LANG_Metal;
370inline std::optional<std::pair<SourceLanguageName, uint32_t>>
374 return {{DW_LNAME_Ada, 1983}};
376 return {{DW_LNAME_Ada, 1995}};
377 case DW_LANG_Ada2005:
378 return {{DW_LNAME_Ada, 2005}};
379 case DW_LANG_Ada2012:
380 return {{DW_LNAME_Ada, 2012}};
382 return {{DW_LNAME_BLISS, 0}};
384 return {{DW_LNAME_C, 0}};
386 return {{DW_LNAME_C, 198912}};
388 return {{DW_LNAME_C, 199901}};
390 return {{DW_LNAME_C, 201112}};
392 return {{DW_LNAME_C, 201712}};
393 case DW_LANG_C_plus_plus:
394 return {{DW_LNAME_C_plus_plus, 0}};
395 case DW_LANG_C_plus_plus_03:
396 return {{DW_LNAME_C_plus_plus, 200310}};
397 case DW_LANG_C_plus_plus_11:
398 return {{DW_LNAME_C_plus_plus, 201103}};
399 case DW_LANG_C_plus_plus_14:
400 return {{DW_LNAME_C_plus_plus, 201402}};
401 case DW_LANG_C_plus_plus_17:
402 return {{DW_LNAME_C_plus_plus, 201703}};
403 case DW_LANG_C_plus_plus_20:
404 return {{DW_LNAME_C_plus_plus, 202002}};
405 case DW_LANG_Cobol74:
406 return {{DW_LNAME_Cobol, 1974}};
407 case DW_LANG_Cobol85:
408 return {{DW_LNAME_Cobol, 1985}};
409 case DW_LANG_Crystal:
410 return {{DW_LNAME_Crystal, 0}};
412 return {{DW_LNAME_D, 0}};
414 return {{DW_LNAME_Dylan, 0}};
415 case DW_LANG_Fortran77:
416 return {{DW_LNAME_Fortran, 1977}};
417 case DW_LANG_Fortran90:
418 return {{DW_LNAME_Fortran, 1990}};
419 case DW_LANG_Fortran95:
420 return {{DW_LNAME_Fortran, 1995}};
421 case DW_LANG_Fortran03:
422 return {{DW_LNAME_Fortran, 2003}};
423 case DW_LANG_Fortran08:
424 return {{DW_LNAME_Fortran, 2008}};
425 case DW_LANG_Fortran18:
426 return {{DW_LNAME_Fortran, 2018}};
428 return {{DW_LNAME_Go, 0}};
429 case DW_LANG_Haskell:
430 return {{DW_LNAME_Haskell, 0}};
434 return {{DW_LNAME_Java, 0}};
436 return {{DW_LNAME_Julia, 0}};
438 return {{DW_LNAME_Kotlin, 0}};
439 case DW_LANG_Modula2:
440 return {{DW_LNAME_Modula2, 0}};
441 case DW_LANG_Modula3:
442 return {{DW_LNAME_Modula3, 0}};
444 return {{DW_LNAME_ObjC, 0}};
445 case DW_LANG_ObjC_plus_plus:
446 return {{DW_LNAME_ObjC_plus_plus, 0}};
448 return {{DW_LNAME_OCaml, 0}};
450 return {{DW_LNAME_OpenCL_C, 0}};
451 case DW_LANG_Pascal83:
452 return {{DW_LNAME_Pascal, 1983}};
454 return {{DW_LNAME_PLI, 0}};
456 return {{DW_LNAME_Python, 0}};
457 case DW_LANG_RenderScript:
458 case DW_LANG_GOOGLE_RenderScript:
459 return {{DW_LNAME_RenderScript, 0}};
461 return {{DW_LNAME_Rust, 0}};
463 return {{DW_LNAME_Swift, 0}};
465 return {{DW_LNAME_UPC, 0}};
467 return {{DW_LNAME_Zig, 0}};
468 case DW_LANG_Assembly:
469 case DW_LANG_Mips_Assembler:
470 return {{DW_LNAME_Assembly, 0}};
471 case DW_LANG_C_sharp:
472 return {{DW_LNAME_C_sharp, 0}};
474 return {{DW_LNAME_Mojo, 0}};
476 return {{DW_LNAME_GLSL, 0}};
477 case DW_LANG_GLSL_ES:
478 return {{DW_LNAME_GLSL_ES, 0}};
480 return {{DW_LNAME_HLSL, 0}};
481 case DW_LANG_OpenCL_CPP:
482 return {{DW_LNAME_OpenCL_CPP, 0}};
484 return {{DW_LNAME_SYCL, 0}};
486 return {{DW_LNAME_Ruby, 0}};
488 return {{DW_LNAME_Move, 0}};
490 return {{DW_LNAME_Hylo, 0}};
492 return {{DW_LNAME_Metal, 0}};
493 case DW_LANG_BORLAND_Delphi:
494 case DW_LANG_CPP_for_OpenCL:
510 case DW_LANG_C_plus_plus:
511 case DW_LANG_C_plus_plus_03:
512 case DW_LANG_C_plus_plus_11:
513 case DW_LANG_C_plus_plus_14:
514 case DW_LANG_C_plus_plus_17:
515 case DW_LANG_C_plus_plus_20:
521 case DW_LANG_Cobol74:
522 case DW_LANG_Cobol85:
523 case DW_LANG_Fortran77:
524 case DW_LANG_Fortran90:
525 case DW_LANG_Pascal83:
526 case DW_LANG_Modula2:
530 case DW_LANG_Fortran95:
533 case DW_LANG_ObjC_plus_plus:
539 case DW_LANG_Modula3:
540 case DW_LANG_Haskell:
547 case DW_LANG_Fortran03:
548 case DW_LANG_Fortran08:
549 case DW_LANG_RenderScript:
551 case DW_LANG_Mips_Assembler:
552 case DW_LANG_GOOGLE_RenderScript:
553 case DW_LANG_BORLAND_Delphi:
558 case DW_LANG_Crystal:
560 case DW_LANG_Fortran18:
561 case DW_LANG_Ada2005:
562 case DW_LANG_Ada2012:
564 case DW_LANG_Assembly:
565 case DW_LANG_C_sharp:
568 case DW_LANG_GLSL_ES:
570 case DW_LANG_OpenCL_CPP:
571 case DW_LANG_CPP_for_OpenCL:
590 case DW_LANG_Fortran77:
591 case DW_LANG_Fortran90:
592 case DW_LANG_Fortran95:
593 case DW_LANG_Fortran03:
594 case DW_LANG_Fortran08:
595 case DW_LANG_Fortran18:
601 case DW_LANG_C_plus_plus:
602 case DW_LANG_Cobol74:
603 case DW_LANG_Cobol85:
604 case DW_LANG_Pascal83:
605 case DW_LANG_Modula2:
611 case DW_LANG_ObjC_plus_plus:
617 case DW_LANG_Modula3:
618 case DW_LANG_Haskell:
619 case DW_LANG_C_plus_plus_03:
620 case DW_LANG_C_plus_plus_11:
627 case DW_LANG_C_plus_plus_14:
628 case DW_LANG_RenderScript:
630 case DW_LANG_Mips_Assembler:
631 case DW_LANG_GOOGLE_RenderScript:
632 case DW_LANG_BORLAND_Delphi:
637 case DW_LANG_Crystal:
638 case DW_LANG_C_plus_plus_17:
639 case DW_LANG_C_plus_plus_20:
641 case DW_LANG_Ada2005:
642 case DW_LANG_Ada2012:
644 case DW_LANG_Assembly:
645 case DW_LANG_C_sharp:
648 case DW_LANG_GLSL_ES:
650 case DW_LANG_OpenCL_CPP:
651 case DW_LANG_CPP_for_OpenCL:
676 case DW_LANG_C_plus_plus:
677 case DW_LANG_C_plus_plus_03:
678 case DW_LANG_C_plus_plus_11:
679 case DW_LANG_C_plus_plus_14:
680 case DW_LANG_C_plus_plus_17:
681 case DW_LANG_C_plus_plus_20:
683 case DW_LANG_Cobol74:
684 case DW_LANG_Cobol85:
685 case DW_LANG_Fortran77:
686 case DW_LANG_Fortran90:
687 case DW_LANG_Pascal83:
688 case DW_LANG_Modula2:
691 case DW_LANG_Fortran95:
693 case DW_LANG_ObjC_plus_plus:
699 case DW_LANG_Modula3:
700 case DW_LANG_Haskell:
706 case DW_LANG_Fortran03:
707 case DW_LANG_Fortran08:
708 case DW_LANG_RenderScript:
710 case DW_LANG_Mips_Assembler:
711 case DW_LANG_GOOGLE_RenderScript:
712 case DW_LANG_BORLAND_Delphi:
717 case DW_LANG_Crystal:
718 case DW_LANG_Fortran18:
719 case DW_LANG_Ada2005:
720 case DW_LANG_Ada2012:
722 case DW_LANG_Assembly:
723 case DW_LANG_C_sharp:
726 case DW_LANG_GLSL_ES:
728 case DW_LANG_OpenCL_CPP:
729 case DW_LANG_CPP_for_OpenCL:
741 return isFortran(S) ? DW_ATE_signed : DW_ATE_unsigned;
754#define HANDLE_DW_CC(ID, NAME) DW_CC_##NAME = ID,
755#include "llvm/BinaryFormat/Dwarf.def"
782#define HANDLE_DW_LNS(ID, NAME) DW_LNS_##NAME = ID,
783#include "llvm/BinaryFormat/Dwarf.def"
788#define HANDLE_DW_LNE(ID, NAME) DW_LNE_##NAME = ID,
789#include "llvm/BinaryFormat/Dwarf.def"
795#define HANDLE_DW_LNCT(ID, NAME) DW_LNCT_##NAME = ID,
796#include "llvm/BinaryFormat/Dwarf.def"
812#define HANDLE_DW_MACRO(ID, NAME) DW_MACRO_##NAME = ID,
813#include "llvm/BinaryFormat/Dwarf.def"
820#define HANDLE_DW_MACRO_GNU(ID, NAME) DW_MACRO_GNU_##NAME = ID,
821#include "llvm/BinaryFormat/Dwarf.def"
828#define HANDLE_DW_RLE(ID, NAME) DW_RLE_##NAME = ID,
829#include "llvm/BinaryFormat/Dwarf.def"
834#define HANDLE_DW_LLE(ID, NAME) DW_LLE_##NAME = ID,
835#include "llvm/BinaryFormat/Dwarf.def"
840#define HANDLE_DW_CFA(ID, NAME) DW_CFA_##NAME = ID,
841#define HANDLE_DW_CFA_PRED(ID, NAME, ARCH) DW_CFA_##NAME = ID,
842#include "llvm/BinaryFormat/Dwarf.def"
877#define HANDLE_DW_APPLE_PROPERTY(ID, NAME) DW_APPLE_PROPERTY_##NAME = ID,
878#include "llvm/BinaryFormat/Dwarf.def"
883#define HANDLE_DW_UT(ID, NAME) DW_UT_##NAME = ID,
884#include "llvm/BinaryFormat/Dwarf.def"
890#define HANDLE_DW_IDX(ID, NAME) DW_IDX_##NAME = ID,
891#include "llvm/BinaryFormat/Dwarf.def"
902 case DW_UT_split_compile:
903 case DW_UT_split_type:
912 case DW_TAG_compile_unit:
913 case DW_TAG_type_unit:
914 case DW_TAG_partial_unit:
915 case DW_TAG_skeleton_unit:
949 if (UniqueHashCount > 1024)
950 return UniqueHashCount / 4;
951 if (UniqueHashCount > 16)
952 return UniqueHashCount / 2;
953 return std::max<uint32_t>(UniqueHashCount, 1);
983 unsigned SubOpEncoding);
1177 return Kind << KIND_OFFSET |
Linkage << LINKAGE_OFFSET;
1183 KIND_MASK = 7 << KIND_OFFSET,
1185 LINKAGE_MASK = 1 << LINKAGE_OFFSET
1189template <
typename Enum>
struct EnumTraits :
public std::false_type {};
1192 static constexpr char Type[3] =
"AT";
1197 static constexpr char Type[5] =
"FORM";
1202 static constexpr char Type[4] =
"IDX";
1207 static constexpr char Type[4] =
"TAG";
1212 static constexpr char Type[4] =
"LNS";
1217 static constexpr char Type[3] =
"OP";
1222 return std::numeric_limits<uint64_t>::max() >> (8 - AddressByteSize) * 8;
1232template <
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 EnumKindString(unsigned EnumKind)
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 getEnumKind(StringRef EnumKindString)
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_APPLE_ENUM_KIND_invalid
Enum kind 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