diff options
Diffstat (limited to 'gnu/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp')
| -rw-r--r-- | gnu/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/gnu/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp b/gnu/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp deleted file mode 100644 index 6d789c3027a..00000000000 --- a/gnu/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp +++ /dev/null @@ -1,101 +0,0 @@ -//===- DWARFDebugMacro.cpp ------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include "llvm/DebugInfo/DWARF/DWARFDebugMacro.h" -#include "llvm/BinaryFormat/Dwarf.h" -#include "llvm/Support/WithColor.h" -#include "llvm/Support/raw_ostream.h" -#include <cstdint> - -using namespace llvm; -using namespace dwarf; - -void DWARFDebugMacro::dump(raw_ostream &OS) const { - unsigned IndLevel = 0; - for (const Entry &E : Macros) { - // There should not be DW_MACINFO_end_file when IndLevel is Zero. However, - // this check handles the case of corrupted ".debug_macinfo" section. - if (IndLevel > 0) - IndLevel -= (E.Type == DW_MACINFO_end_file); - // Print indentation. - for (unsigned I = 0; I < IndLevel; I++) - OS << " "; - IndLevel += (E.Type == DW_MACINFO_start_file); - - WithColor(OS, HighlightColor::Macro).get() << MacinfoString(E.Type); - switch (E.Type) { - default: - // Got a corrupted ".debug_macinfo" section (invalid macinfo type). - break; - case DW_MACINFO_define: - case DW_MACINFO_undef: - OS << " - lineno: " << E.Line; - OS << " macro: " << E.MacroStr; - break; - case DW_MACINFO_start_file: - OS << " - lineno: " << E.Line; - OS << " filenum: " << E.File; - break; - case DW_MACINFO_end_file: - break; - case DW_MACINFO_vendor_ext: - OS << " - constant: " << E.ExtConstant; - OS << " string: " << E.ExtStr; - break; - } - OS << "\n"; - } -} - -void DWARFDebugMacro::parse(DataExtractor data) { - uint32_t Offset = 0; - while (data.isValidOffset(Offset)) { - // A macro list entry consists of: - Entry E; - // 1. Macinfo type - E.Type = data.getULEB128(&Offset); - - if (E.Type == 0) { - // Reached end of ".debug_macinfo" section. - return; - } - - switch (E.Type) { - default: - // Got a corrupted ".debug_macinfo" section (invalid macinfo type). - // Push the corrupted entry to the list and halt parsing. - E.Type = DW_MACINFO_invalid; - Macros.push_back(E); - return; - case DW_MACINFO_define: - case DW_MACINFO_undef: - // 2. Source line - E.Line = data.getULEB128(&Offset); - // 3. Macro string - E.MacroStr = data.getCStr(&Offset); - break; - case DW_MACINFO_start_file: - // 2. Source line - E.Line = data.getULEB128(&Offset); - // 3. Source file id - E.File = data.getULEB128(&Offset); - break; - case DW_MACINFO_end_file: - break; - case DW_MACINFO_vendor_ext: - // 2. Vendor extension constant - E.ExtConstant = data.getULEB128(&Offset); - // 3. Vendor extension string - E.ExtStr = data.getCStr(&Offset); - break; - } - - Macros.push_back(E); - } -} |
