summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h2
-rw-r--r--lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp5
-rw-r--r--lib/DebugInfo/DWARF/DWARFVerifier.cpp11
-rw-r--r--test/tools/llvm-dwarfdump/X86/verify_die_ranges.s2
4 files changed, 11 insertions, 9 deletions
diff --git a/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h b/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h
index 0d97c2169e8..f9ec96366a5 100644
--- a/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h
+++ b/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h
@@ -57,6 +57,8 @@ static inline bool operator<(const DWARFAddressRange &LHS,
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<DWARFAddressRange>;
diff --git a/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp b/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp
index 62bd5af4e64..f0b7ec2751d 100644
--- a/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp
+++ b/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;
diff --git a/lib/DebugInfo/DWARF/DWARFVerifier.cpp b/lib/DebugInfo/DWARF/DWARFVerifier.cpp
index 7f5ef1567ca..27e6a05e6dd 100644
--- a/lib/DebugInfo/DWARF/DWARFVerifier.cpp
+++ b/lib/DebugInfo/DWARF/DWARFVerifier.cpp
@@ -315,9 +315,7 @@ unsigned DWARFVerifier::verifyDieRanges(const DWARFDie &Die,
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 @@ unsigned DWARFVerifier::verifyDieRanges(const DWARFDie &Die,
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;
}
}
diff --git a/test/tools/llvm-dwarfdump/X86/verify_die_ranges.s b/test/tools/llvm-dwarfdump/X86/verify_die_ranges.s
index 903f9e9ed02..540db462b13 100644
--- a/test/tools/llvm-dwarfdump/X86/verify_die_ranges.s
+++ b/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