diff options
Diffstat (limited to 'llvm/tools/dsymutil/DwarfStreamer.cpp')
-rw-r--r-- | llvm/tools/dsymutil/DwarfStreamer.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/llvm/tools/dsymutil/DwarfStreamer.cpp b/llvm/tools/dsymutil/DwarfStreamer.cpp index 0687c5740f2..6a0554bb729 100644 --- a/llvm/tools/dsymutil/DwarfStreamer.cpp +++ b/llvm/tools/dsymutil/DwarfStreamer.cpp @@ -269,27 +269,28 @@ void DwarfStreamer::emitSwiftAST(StringRef Buffer) { void DwarfStreamer::emitRangesEntries( int64_t UnitPcOffset, uint64_t OrigLowPc, const FunctionIntervals::const_iterator &FuncRange, - const DWARFDebugRnglist::ListEntries &Entries, unsigned AddressSize) { + const std::vector<DWARFDebugRangeList::RangeListEntry> &Entries, + unsigned AddressSize) { MS->SwitchSection(MC->getObjectFileInfo()->getDwarfRangesSection()); // Offset each range by the right amount. int64_t PcOffset = Entries.empty() ? 0 : FuncRange.value() + UnitPcOffset; for (const auto &Range : Entries) { - if (Range.isBaseAddressSelectionEntry()) { + if (Range.isBaseAddressSelectionEntry(AddressSize)) { warn("unsupported base address selection operation", "emitting debug_ranges"); break; } // Do not emit empty ranges. - if (Range.isEndOfList() || Range.getStartAddress() == Range.getEndAddress()) + if (Range.StartAddress == Range.EndAddress) continue; // All range entries should lie in the function range. - if (!(Range.getStartAddress() + OrigLowPc >= FuncRange.start() && - Range.getEndAddress() + OrigLowPc <= FuncRange.stop())) + if (!(Range.StartAddress + OrigLowPc >= FuncRange.start() && + Range.EndAddress + OrigLowPc <= FuncRange.stop())) warn("inconsistent range data.", "emitting debug_ranges"); - MS->EmitIntValue(Range.getStartAddress() + PcOffset, AddressSize); - MS->EmitIntValue(Range.getEndAddress() + PcOffset, AddressSize); + MS->EmitIntValue(Range.StartAddress + PcOffset, AddressSize); + MS->EmitIntValue(Range.EndAddress + PcOffset, AddressSize); RangesSectionSize += 2 * AddressSize; } |