From 98e3f19b419f3efde3aadca79c3ead75cbbf1b9a Mon Sep 17 00:00:00 2001 From: Alexey Lapshin Date: Fri, 14 Feb 2020 18:57:21 +0300 Subject: [PATCH] [Debuginfo][NFC] Remove usages of WithColor::error and WithColor::warning. Summary: This patch is extracted from D74308. It patches all usages of WithColor::error() and WithColor::warning in DebugInfoDWARF library. Depends on D74481 Reviewers: jhenderson, dblaikie, probinson, aprantl, JDevlieghere Reviewed By: JDevlieghere Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D74635 --- .../include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h | 3 ++- llvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp | 11 ++++++----- llvm/lib/DebugInfo/DWARF/DWARFDie.cpp | 5 +++-- llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp | 20 +++++++++++--------- 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h index ceed50d..cd04bf1 100644 --- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h +++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAranges.h @@ -25,7 +25,8 @@ public: private: void clear(); - void extract(DataExtractor DebugArangesData); + void extract(DataExtractor DebugArangesData, + function_ref RecoverableErrorHandler); /// Call appendRange multiple times and then call construct. void appendRange(uint64_t CUOffset, uint64_t LowPC, uint64_t HighPC); diff --git a/llvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp b/llvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp index 9ca9021..0344844 100644 --- a/llvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp @@ -11,7 +11,6 @@ #include "llvm/DebugInfo/DWARF/DWARFContext.h" #include "llvm/DebugInfo/DWARF/DWARFDebugArangeSet.h" #include "llvm/Support/DataExtractor.h" -#include "llvm/Support/WithColor.h" #include #include #include @@ -20,7 +19,9 @@ using namespace llvm; -void DWARFDebugAranges::extract(DataExtractor DebugArangesData) { +void DWARFDebugAranges::extract( + DataExtractor DebugArangesData, + function_ref RecoverableErrorHandler) { if (!DebugArangesData.isValidOffset(0)) return; uint64_t Offset = 0; @@ -28,7 +29,7 @@ void DWARFDebugAranges::extract(DataExtractor DebugArangesData) { while (DebugArangesData.isValidOffset(Offset)) { if (Error E = Set.extract(DebugArangesData, &Offset)) { - WithColor::error() << toString(std::move(E)) << '\n'; + RecoverableErrorHandler(std::move(E)); return; } uint64_t CUOffset = Set.getCompileUnitDIEOffset(); @@ -49,7 +50,7 @@ void DWARFDebugAranges::generate(DWARFContext *CTX) { // Extract aranges from .debug_aranges section. DataExtractor ArangesData(CTX->getDWARFObj().getArangesSection(), CTX->isLittleEndian(), 0); - extract(ArangesData); + extract(ArangesData, CTX->getRecoverableErrorHandler()); // Generate aranges from DIEs: even if .debug_aranges section is present, // it may describe only a small subset of compilation units, so we need to @@ -59,7 +60,7 @@ void DWARFDebugAranges::generate(DWARFContext *CTX) { if (ParsedCUOffsets.insert(CUOffset).second) { Expected CURanges = CU->collectAddressRanges(); if (!CURanges) - WithColor::error() << toString(CURanges.takeError()) << '\n'; + CTX->getRecoverableErrorHandler()(CURanges.takeError()); else for (const auto &R : *CURanges) appendRange(CUOffset, R.LowPC, R.HighPC); diff --git a/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp b/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp index 2c44e85..134436c 100644 --- a/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp @@ -316,8 +316,9 @@ static void dumpAttribute(raw_ostream &OS, const DWARFDie &Die, dumpRanges(Obj, OS, RangesOrError.get(), U->getAddressByteSize(), sizeof(BaseIndent) + Indent + 4, DumpOpts); else - WithColor::error() << "decoding address ranges: " - << toString(RangesOrError.takeError()) << '\n'; + DumpOpts.RecoverableErrorHandler(createStringError( + errc::invalid_argument, "decoding address ranges: %s", + toString(RangesOrError.takeError()).c_str())); } OS << ")\n"; diff --git a/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp b/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp index 7bb0194..bf51f0a 100644 --- a/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp @@ -21,7 +21,6 @@ #include "llvm/Support/DataExtractor.h" #include "llvm/Support/Errc.h" #include "llvm/Support/Path.h" -#include "llvm/Support/WithColor.h" #include #include #include @@ -426,15 +425,17 @@ void DWARFUnit::extractDIEsToVector( // should always terminate at or before the start of the next compilation // unit header). if (DIEOffset > NextCUOffset) - WithColor::warning() << format("DWARF compile unit extends beyond its " - "bounds cu 0x%8.8" PRIx64 " " - "at 0x%8.8" PRIx64 "\n", - getOffset(), DIEOffset); + Context.getWarningHandler()( + createStringError(errc::invalid_argument, + "DWARF compile unit extends beyond its " + "bounds cu 0x%8.8" PRIx64 " " + "at 0x%8.8" PRIx64 "\n", + getOffset(), DIEOffset)); } void DWARFUnit::extractDIEsIfNeeded(bool CUDieOnly) { if (Error e = tryExtractDIEsIfNeeded(CUDieOnly)) - WithColor::error() << toString(std::move(e)); + Context.getRecoverableErrorHandler()(std::move(e)); } Error DWARFUnit::tryExtractDIEsIfNeeded(bool CUDieOnly) { @@ -596,9 +597,10 @@ bool DWARFUnit::parseDWO() { RangesDA, RangeSectionBase, Header.getFormat())) DWO->RngListTable = TableOrError.get(); else - WithColor::error() << "parsing a range list table: " - << toString(TableOrError.takeError()) - << '\n'; + Context.getRecoverableErrorHandler()(createStringError( + errc::invalid_argument, "parsing a range list table: %s", + toString(TableOrError.takeError()).c_str())); + if (DWO->RngListTable) DWO->RangeSectionBase = DWO->RngListTable->getHeaderSize(); } else { -- 2.7.4