diff --git a/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp b/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp index 85c184559d05..28cf84e61b17 100644 --- a/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp +++ b/lldb/source/Plugins/SymbolFile/DWARF/DWARFUnit.cpp @@ -529,31 +529,17 @@ void DWARFUnit::SetRangesBase(dw_addr_t ranges_base) { const llvm::Optional & DWARFUnit::GetRnglistTable() { - uint64_t offset = m_ranges_base; if (GetVersion() >= 5 && !m_rnglist_table_done) { m_rnglist_table_done = true; - - if (const llvm::DWARFUnitIndex::Entry *entry = m_header.GetIndexEntry()) { - const auto *contribution = entry->getContribution(llvm::DW_SECT_RNGLISTS); - if (!contribution) { - GetSymbolFileDWARF().GetObjectFile()->GetModule()->ReportError( - "Failed to find range list contribution for CU with DWO Id " - "0x%" PRIx64, - this->GetDWOId()); - } - offset += contribution->Offset; - } - if (auto table_or_error = ParseListTableHeader( - m_dwarf.GetDWARFContext().getOrLoadRngListsData().GetAsLLVM(), - offset, DWARF32)) + GetRnglistData().GetAsLLVM(), + m_ranges_base, DWARF32)) m_rnglist_table = std::move(table_or_error.get()); else GetSymbolFileDWARF().GetObjectFile()->GetModule()->ReportError( - "Failed to extract range list table at offset 0x%" PRIx64 - " (ranges list base: 0x%" PRIx64 "): %s", - offset, m_ranges_base, toString(table_or_error.takeError()).c_str()); + "Failed to extract range list table at offset 0x%" PRIx64 ": %s", + m_ranges_base, toString(table_or_error.takeError()).c_str()); } return m_rnglist_table; } @@ -569,7 +555,7 @@ llvm::Expected DWARFUnit::GetRnglistOffset(uint32_t Index) { "DW_AT_rnglists_base for CU at 0x%8.8x", GetOffset()); if (llvm::Optional off = GetRnglistTable()->getOffsetEntry( - m_dwarf.GetDWARFContext().getOrLoadRngListsData().GetAsLLVM(), Index)) + GetRnglistData().GetAsLLVM(), Index)) return *off + m_ranges_base; return llvm::createStringError( errc::invalid_argument,