diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2016-03-05 21:10:34 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2016-03-05 21:10:34 +0000 |
commit | 1dcfcfee2aed36b423a1309899caf80b5fc529c6 (patch) | |
tree | dd26d1faf5ccd10e061764e01a7a78d7e60d1201 /contrib | |
parent | e74e149f7801a4078b9088b71c19a770e3cc9c40 (diff) | |
download | src-test2-1dcfcfee2aed36b423a1309899caf80b5fc529c6.tar.gz src-test2-1dcfcfee2aed36b423a1309899caf80b5fc529c6.zip |
Notes
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h | 118 | ||||
-rw-r--r-- | contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp | 206 |
2 files changed, 162 insertions, 162 deletions
diff --git a/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h b/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h index f7910962a03f..e17c993d275b 100644 --- a/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h +++ b/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h @@ -1,59 +1,59 @@ -//===-- DWARFDebugMacro.h ---------------------------------------*- C++ -*-===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H
-#define LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H
-
-#include "llvm/ADT/SmallVector.h"
-#include "llvm/ADT/StringRef.h"
-#include "llvm/Support/DataExtractor.h"
-#include "llvm/Support/Dwarf.h"
-
-namespace llvm {
-
-class raw_ostream;
-
-class DWARFDebugMacro {
- /// A single macro entry within a macro list.
- struct Entry {
- /// The type of the macro entry.
- uint32_t Type;
- union {
- /// The source line where the macro is defined.
- uint64_t Line;
- /// Vendor extension constant value.
- uint64_t ExtConstant;
- };
-
- union {
- /// The string (name, value) of the macro entry.
- const char *MacroStr;
- // An unsigned integer indicating the identity of the source file.
- uint64_t File;
- /// Vendor extension string.
- const char *ExtStr;
- };
- };
-
- typedef SmallVector<Entry, 4> MacroList;
-
- /// A list of all the macro entries in the debug_macinfo section.
- MacroList Macros;
-
-public:
- DWARFDebugMacro() {}
- /// Print the macro list found within the debug_macinfo section.
- void dump(raw_ostream &OS) const;
- /// Parse the debug_macinfo section accessible via the 'data' parameter.
- void parse(DataExtractor data);
-};
-
-}
-
-#endif
+//===-- DWARFDebugMacro.h ---------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H +#define LLVM_DEBUGINFO_DWARF_DWARFDEBUGMACRO_H + +#include "llvm/ADT/SmallVector.h" +#include "llvm/ADT/StringRef.h" +#include "llvm/Support/DataExtractor.h" +#include "llvm/Support/Dwarf.h" + +namespace llvm { + +class raw_ostream; + +class DWARFDebugMacro { + /// A single macro entry within a macro list. + struct Entry { + /// The type of the macro entry. + uint32_t Type; + union { + /// The source line where the macro is defined. + uint64_t Line; + /// Vendor extension constant value. + uint64_t ExtConstant; + }; + + union { + /// The string (name, value) of the macro entry. + const char *MacroStr; + // An unsigned integer indicating the identity of the source file. + uint64_t File; + /// Vendor extension string. + const char *ExtStr; + }; + }; + + typedef SmallVector<Entry, 4> MacroList; + + /// A list of all the macro entries in the debug_macinfo section. + MacroList Macros; + +public: + DWARFDebugMacro() {} + /// Print the macro list found within the debug_macinfo section. + void dump(raw_ostream &OS) const; + /// Parse the debug_macinfo section accessible via the 'data' parameter. + void parse(DataExtractor data); +}; + +} + +#endif diff --git a/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp b/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp index b6555fa6272e..b825d4d25243 100644 --- a/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp +++ b/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugMacro.cpp @@ -1,103 +1,103 @@ -//===-- DWARFDebugMacro.cpp -----------------------------------------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "SyntaxHighlighting.h"
-#include "llvm/DebugInfo/DWARF/DWARFDebugMacro.h"
-#include "llvm/Support/Compiler.h"
-#include "llvm/Support/Dwarf.h"
-#include "llvm/Support/Format.h"
-#include "llvm/Support/raw_ostream.h"
-
-using namespace llvm;
-using namespace dwarf;
-using namespace syntax;
-
-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, syntax::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);
- }
-}
+//===-- DWARFDebugMacro.cpp -----------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "SyntaxHighlighting.h" +#include "llvm/DebugInfo/DWARF/DWARFDebugMacro.h" +#include "llvm/Support/Compiler.h" +#include "llvm/Support/Dwarf.h" +#include "llvm/Support/Format.h" +#include "llvm/Support/raw_ostream.h" + +using namespace llvm; +using namespace dwarf; +using namespace syntax; + +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, syntax::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); + } +} |