forked from OSchip/llvm-project
[dwarfdump][NFC] Consistent printing of address ranges
This implement the insertion operator for DWARF address ranges so they are consistently printed as [LowPC, HighPC). While a dump method might have felt more consistent, it is used exclusively for printing error messages in the verifier and never used for actual dumping. Hence this approach is more intuitive and creates less clutter at the call sites. Differential revision: https://reviews.llvm.org/D38395 llvm-svn: 314523
This commit is contained in:
parent
ce4ddd06da
commit
a15f25d325
|
@ -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>;
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue