9#ifndef LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H
10#define LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H
29#define HANDLE_MACRO_FLAG(ID, NAME) MACRO_##NAME = ID,
30#include "llvm/BinaryFormat/Dwarf.def"
60 void dumpMacroHeader(raw_ostream &
OS)
const;
69 uint8_t getOffsetByteSize()
const;
100 SmallVector<Entry, 4> Macros;
108 std::vector<MacroList> MacroLists;
119 return parseImpl(Units, StringExtractor, MacroData,
true);
123 return parseImpl(std::nullopt, std::nullopt, MacroData,
false);
127 bool empty()
const {
return MacroLists.empty(); }
130 for (
const MacroList &
List : MacroLists)
140 Error parseImpl(std::optional<DWARFUnitVector::compile_unit_range> Units,
141 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
The Dwarf streaming logic.
Lightweight error class with error context and mandatory checking.
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.