Index: llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h =================================================================== --- llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h +++ llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h @@ -57,6 +57,8 @@ return std::tie(LHS.LowPC, LHS.HighPC) < std::tie(RHS.LowPC, RHS.HighPC); } +raw_ostream &operator<<(raw_ostream &OS, const DWARFAddressRange &R); + /// DWARFAddressRangesVector - represents a set of absolute address ranges. using DWARFAddressRangesVector = std::vector; Index: llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp =================================================================== --- llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp +++ llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp @@ -17,6 +17,11 @@ using namespace llvm; +raw_ostream &llvm::operator<<(raw_ostream &OS, const DWARFAddressRange &R) { + return OS << format("[0x%16.16" PRIx64 ", 0x%16.16" PRIx64 ")", R.LowPC, + R.HighPC); +} + void DWARFDebugRangeList::clear() { Offset = -1U; AddressSize = 0; Index: llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp =================================================================== --- llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp +++ llvm/trunk/lib/DebugInfo/DWARF/DWARFVerifier.cpp @@ -315,9 +315,7 @@ for (auto Range : Ranges) { if (!Range.valid()) { ++NumErrors; - error() << format("Invalid address range [0x%08" PRIx64 " - 0x%08" PRIx64 - "].\n", - Range.LowPC, Range.HighPC); + error() << "Invalid address range " << Range << "\n"; continue; } @@ -325,11 +323,8 @@ const auto IntersectingRange = RI.insert(Range); if (IntersectingRange != RI.Ranges.end()) { ++NumErrors; - error() << format("DIE has overlapping address ranges: [0x%08" PRIx64 - " - 0x%08" PRIx64 "] and [0x%08" PRIx64 - " - 0x%08" PRIx64 "].\n", - Range.LowPC, Range.HighPC, IntersectingRange->LowPC, - IntersectingRange->HighPC); + error() << "DIE has overlapping address ranges: " << Range << " and " + << *IntersectingRange << "\n"; break; } } Index: llvm/trunk/test/tools/llvm-dwarfdump/X86/verify_die_ranges.s =================================================================== --- llvm/trunk/test/tools/llvm-dwarfdump/X86/verify_die_ranges.s +++ llvm/trunk/test/tools/llvm-dwarfdump/X86/verify_die_ranges.s @@ -3,7 +3,7 @@ # RUN: | FileCheck %s # CHECK: Verifying .debug_info Unit Header Chain... -# CHECK-NEXT: error: Invalid address range [0x00000007 - 0x00000006]. +# CHECK-NEXT: error: Invalid address range [0x0000000000000007, 0x0000000000000006) .section __TEXT,__text,regular,pure_instructions .macosx_version_min 10, 12