9#ifndef LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H
10#define LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H
22namespace dwarf_linker {
34#define HANDLE_MACRO_FLAG(ID, NAME) MACRO_##NAME = ID,
35#include "llvm/BinaryFormat/Dwarf.def"
65 void dumpMacroHeader(raw_ostream &
OS)
const;
74 uint8_t getOffsetByteSize()
const;
105 SmallVector<Entry, 4> Macros;
113 std::vector<MacroList> MacroLists;
124 return parseImpl(Units, StringExtractor, MacroData,
true);
128 return parseImpl(std::nullopt, std::nullopt, MacroData,
false);
132 bool empty()
const {
return MacroLists.empty(); }
135 for (
const MacroList &
List : MacroLists)
145 Error parseImpl(std::optional<DWARFUnitVector::compile_unit_range> Units,
146 std::optional<DataExtractor> StringExtractor,
This file defines the SmallVector class.
DWARFDebugMacro()=default
void dump(raw_ostream &OS) const
Print the macro list found within the debug_macinfo/debug_macro section.
Error parseMacinfo(DWARFDataExtractor MacroData)
bool empty() const
Return whether the section has any entries.
Error parseMacro(DWARFUnitVector::compile_unit_range Units, DataExtractor StringExtractor, DWARFDataExtractor MacroData)
bool hasEntryForOffset(uint64_t Offset) const
decltype(make_filter_range(std::declval< iterator_range >(), isCompileUnit)) compile_unit_range
Lightweight error class with error context and mandatory checking.
User of DwarfStreamer should call initialization code for AsmPrinter:
Stores all information related to a compile unit, be it in its original instance of the object file o...
This class implements an extremely fast bulk output stream that can only output to a stream.
DwarfFormat
Constants that define the DWARF format as 32 or 64 bit.
Type
MessagePack types as defined in the standard, with the exception of Integer being divided into a sign...
This is an optimization pass for GlobalISel generic memory operations.