From 1f9cab6b1c7746479b90f0d0bebfa38bef2e2f43 Mon Sep 17 00:00:00 2001 From: George Rimar Date: Fri, 26 May 2017 17:36:23 +0000 Subject: [PATCH] Revert r304002 "[DWARF] - Make collectAddressRanges() return section index in addition to Low/High PC" Revert it again. Now another bot unhappy: http://lab.llvm.org:8011/builders/clang-s390x-linux/builds/8750 llvm-svn: 304011 --- llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h | 3 +- .../llvm/DebugInfo/DWARF/DWARFDebugRangeList.h | 3 -- llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h | 3 +- llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h | 2 - llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h | 3 -- llvm/include/llvm/Object/COFF.h | 1 - llvm/include/llvm/Object/ELFObjectFile.h | 12 ----- llvm/include/llvm/Object/MachO.h | 1 - llvm/include/llvm/Object/ObjectFile.h | 6 --- llvm/include/llvm/Object/Wasm.h | 1 - llvm/lib/DebugInfo/DWARF/DWARFContext.cpp | 58 +++++++++------------- llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp | 8 +-- llvm/lib/DebugInfo/DWARF/DWARFDie.cpp | 13 ++--- llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp | 4 +- llvm/lib/Object/COFFObjectFile.cpp | 4 -- llvm/lib/Object/MachOObjectFile.cpp | 4 -- llvm/lib/Object/WasmObjectFile.cpp | 4 -- .../DebugInfo/DWARF/DWARFDebugInfoTest.cpp | 12 ++--- 18 files changed, 42 insertions(+), 100 deletions(-) diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h index 7fa68f3..4288396 100644 --- a/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h +++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h @@ -46,8 +46,7 @@ class raw_ostream; /// Reads a value from data extractor and applies a relocation to the result if /// one exists for the given offset. uint64_t getRelocatedValue(const DataExtractor &Data, uint32_t Size, - uint32_t *Off, const RelocAddrMap *Relocs, - uint64_t *SecNdx = nullptr); + uint32_t *Off, const RelocAddrMap *Relocs); /// DWARFContext /// This data structure is the top level entity that deals with dwarf debug diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h index b436711..95ec1be 100644 --- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h +++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h @@ -25,7 +25,6 @@ class raw_ostream; struct DWARFAddressRange { uint64_t LowPC; uint64_t HighPC; - uint64_t SectionIndex; }; /// DWARFAddressRangesVector - represents a set of absolute address ranges. @@ -45,8 +44,6 @@ public: /// address past the end of the address range. The ending address must /// be greater than or equal to the beginning address. uint64_t EndAddress; - /// A section index this range belongs to. - uint64_t SectionIndex; /// The end of any given range list is marked by an end of list entry, /// which consists of a 0 for the beginning address offset diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h index fa41b9e..ca94a90 100644 --- a/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h +++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h @@ -195,8 +195,7 @@ public: /// Retrieves DW_AT_low_pc and DW_AT_high_pc from CU. /// Returns true if both attributes are present. - bool getLowAndHighPC(uint64_t &LowPC, uint64_t &HighPC, - uint64_t &SectionIndex) const; + bool getLowAndHighPC(uint64_t &LowPC, uint64_t &HighPC) const; /// Get the address ranges for this DIE. /// diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h index 3a781dd..a30e0be 100644 --- a/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h +++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h @@ -47,7 +47,6 @@ private: const char *cstr; }; const uint8_t *data = nullptr; - uint64_t SectionIndex; /// Section index for reference forms. }; dwarf::Form Form; /// Form for this value. @@ -59,7 +58,6 @@ public: dwarf::Form getForm() const { return Form; } uint64_t getRawUValue() const { return Value.uval; } - uint64_t getSectionIndex() const { return Value.SectionIndex; } void setForm(dwarf::Form F) { Form = F; } void setUValue(uint64_t V) { Value.uval = V; } void setSValue(int64_t V) { Value.sval = V; } diff --git a/llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h index f143de3..fabacc0 100644 --- a/llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h +++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h @@ -16,10 +16,7 @@ namespace llvm { -/// RelocAddrEntry contains relocated value and section index. -/// Section index is -1LL if relocation points to absolute symbol. struct RelocAddrEntry { - uint64_t SectionIndex; uint64_t Value; }; diff --git a/llvm/include/llvm/Object/COFF.h b/llvm/include/llvm/Object/COFF.h index dafd1a4..8b9b497 100644 --- a/llvm/include/llvm/Object/COFF.h +++ b/llvm/include/llvm/Object/COFF.h @@ -782,7 +782,6 @@ protected: std::error_code getSectionName(DataRefImpl Sec, StringRef &Res) const override; uint64_t getSectionAddress(DataRefImpl Sec) const override; - uint64_t getSectionIndex(DataRefImpl Sec) const override; uint64_t getSectionSize(DataRefImpl Sec) const override; std::error_code getSectionContents(DataRefImpl Sec, StringRef &Res) const override; diff --git a/llvm/include/llvm/Object/ELFObjectFile.h b/llvm/include/llvm/Object/ELFObjectFile.h index ef2abd8..d8b58b8 100644 --- a/llvm/include/llvm/Object/ELFObjectFile.h +++ b/llvm/include/llvm/Object/ELFObjectFile.h @@ -235,7 +235,6 @@ protected: std::error_code getSectionName(DataRefImpl Sec, StringRef &Res) const override; uint64_t getSectionAddress(DataRefImpl Sec) const override; - uint64_t getSectionIndex(DataRefImpl Sec) const override; uint64_t getSectionSize(DataRefImpl Sec) const override; std::error_code getSectionContents(DataRefImpl Sec, StringRef &Res) const override; @@ -647,17 +646,6 @@ uint64_t ELFObjectFile::getSectionAddress(DataRefImpl Sec) const { } template -uint64_t ELFObjectFile::getSectionIndex(DataRefImpl Sec) const { - auto SectionsOrErr = EF.sections(); - handleAllErrors(std::move(SectionsOrErr.takeError()), - [](const ErrorInfoBase &) { - llvm_unreachable("unable to get section index"); - }); - const Elf_Shdr *First = SectionsOrErr->begin(); - return getSection(Sec) - First; -} - -template uint64_t ELFObjectFile::getSectionSize(DataRefImpl Sec) const { return getSection(Sec)->sh_size; } diff --git a/llvm/include/llvm/Object/MachO.h b/llvm/include/llvm/Object/MachO.h index a4356d5..2955355 100644 --- a/llvm/include/llvm/Object/MachO.h +++ b/llvm/include/llvm/Object/MachO.h @@ -290,7 +290,6 @@ public: std::error_code getSectionName(DataRefImpl Sec, StringRef &Res) const override; uint64_t getSectionAddress(DataRefImpl Sec) const override; - uint64_t getSectionIndex(DataRefImpl Sec) const override; uint64_t getSectionSize(DataRefImpl Sec) const override; std::error_code getSectionContents(DataRefImpl Sec, StringRef &Res) const override; diff --git a/llvm/include/llvm/Object/ObjectFile.h b/llvm/include/llvm/Object/ObjectFile.h index ea6a904..9a7bc61 100644 --- a/llvm/include/llvm/Object/ObjectFile.h +++ b/llvm/include/llvm/Object/ObjectFile.h @@ -95,7 +95,6 @@ public: std::error_code getName(StringRef &Result) const; uint64_t getAddress() const; - uint64_t getIndex() const; uint64_t getSize() const; std::error_code getContents(StringRef &Result) const; @@ -223,7 +222,6 @@ protected: virtual std::error_code getSectionName(DataRefImpl Sec, StringRef &Res) const = 0; virtual uint64_t getSectionAddress(DataRefImpl Sec) const = 0; - virtual uint64_t getSectionIndex(DataRefImpl Sec) const = 0; virtual uint64_t getSectionSize(DataRefImpl Sec) const = 0; virtual std::error_code getSectionContents(DataRefImpl Sec, StringRef &Res) const = 0; @@ -395,10 +393,6 @@ inline uint64_t SectionRef::getAddress() const { return OwningObject->getSectionAddress(SectionPimpl); } -inline uint64_t SectionRef::getIndex() const { - return OwningObject->getSectionIndex(SectionPimpl); -} - inline uint64_t SectionRef::getSize() const { return OwningObject->getSectionSize(SectionPimpl); } diff --git a/llvm/include/llvm/Object/Wasm.h b/llvm/include/llvm/Object/Wasm.h index de54a49..d200d4a 100644 --- a/llvm/include/llvm/Object/Wasm.h +++ b/llvm/include/llvm/Object/Wasm.h @@ -119,7 +119,6 @@ public: std::error_code getSectionName(DataRefImpl Sec, StringRef &Res) const override; uint64_t getSectionAddress(DataRefImpl Sec) const override; - uint64_t getSectionIndex(DataRefImpl Sec) const override; uint64_t getSectionSize(DataRefImpl Sec) const override; std::error_code getSectionContents(DataRefImpl Sec, StringRef &Res) const override; diff --git a/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp b/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp index 7c569f9..896837c 100644 --- a/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp @@ -60,15 +60,12 @@ typedef DILineInfoSpecifier::FileLineInfoKind FileLineInfoKind; typedef DILineInfoSpecifier::FunctionNameKind FunctionNameKind; uint64_t llvm::getRelocatedValue(const DataExtractor &Data, uint32_t Size, - uint32_t *Off, const RelocAddrMap *Relocs, - uint64_t *SectionIndex) { + uint32_t *Off, const RelocAddrMap *Relocs) { if (!Relocs) return Data.getUnsigned(Off, Size); RelocAddrMap::const_iterator AI = Relocs->find(*Off); if (AI == Relocs->end()) return Data.getUnsigned(Off, Size); - if (SectionIndex) - *SectionIndex = AI->second.SectionIndex; return Data.getUnsigned(Off, Size) + AI->second.Value; } @@ -961,29 +958,23 @@ static Error createError(const Twine &Reason, llvm::Error E) { inconvertibleErrorCode()); } -/// SymInfo contains information about symbol: it's address -/// and section index which is -1LL for absolute symbols. -struct SymInfo { - uint64_t Address; - uint64_t SectionIndex; -}; - -/// Returns the address of symbol relocation used against and a section index. -/// Used for futher relocations computation. Symbol's section load address is -static Expected getSymbolInfo(const object::ObjectFile &Obj, - const RelocationRef &Reloc, - const LoadedObjectInfo *L, - std::map &Cache) { - SymInfo Ret; +/// Returns the address of symbol relocation used against. Used for futher +/// relocations computation. Symbol's section load address is taken in account if +/// LoadedObjectInfo interface is provided. +static Expected +getSymbolAddress(const object::ObjectFile &Obj, const RelocationRef &Reloc, + const LoadedObjectInfo *L, + std::map &Cache) { + uint64_t Ret = 0; object::section_iterator RSec = Obj.section_end(); object::symbol_iterator Sym = Reloc.getSymbol(); - std::map::iterator CacheIt = Cache.end(); + std::map::iterator CacheIt = Cache.end(); // First calculate the address of the symbol or section as it appears // in the object file if (Sym != Obj.symbol_end()) { bool New; - std::tie(CacheIt, New) = Cache.insert({*Sym, {0, 0}}); + std::tie(CacheIt, New) = Cache.insert({*Sym, 0}); if (!New) return CacheIt->second; @@ -999,14 +990,12 @@ static Expected getSymbolInfo(const object::ObjectFile &Obj, SectOrErr.takeError()); RSec = *SectOrErr; - Ret.Address = *SymAddrOrErr; + Ret = *SymAddrOrErr; } else if (auto *MObj = dyn_cast(&Obj)) { RSec = MObj->getRelocationSection(Reloc.getRawDataRefImpl()); - Ret.Address = RSec->getAddress(); + Ret = RSec->getAddress(); } - Ret.SectionIndex = (RSec != Obj.section_end()) ? RSec->getIndex() : -1LL; - // If we are given load addresses for the sections, we need to adjust: // SymAddr = (Address of Symbol Or Section in File) - // (Address of Section in File) + @@ -1016,7 +1005,7 @@ static Expected getSymbolInfo(const object::ObjectFile &Obj, // we need to perform the same computation. if (L && RSec != Obj.section_end()) if (uint64_t SectionLoadAddress = L->getSectionLoadAddress(*RSec)) - Ret.Address += SectionLoadAddress - RSec->getAddress(); + Ret += SectionLoadAddress - RSec->getAddress(); if (CacheIt != Cache.end()) CacheIt->second = Ret; @@ -1075,7 +1064,7 @@ DWARFContextInMemory::DWARFContextInMemory(const object::ObjectFile &Obj, // Try to obtain an already relocated version of this section. // Else use the unrelocated section from the object file. We'll have to // apply relocations ourselves later. - if (!L || !L->getLoadedSectionContents(*RelocatedSection, data)) + if (!L || !L->getLoadedSectionContents(*RelocatedSection,data)) Section.getContents(data); if (auto Err = maybeDecompress(Section, name, data)) { @@ -1114,7 +1103,7 @@ DWARFContextInMemory::DWARFContextInMemory(const object::ObjectFile &Obj, // If the section we're relocating was relocated already by the JIT, // then we used the relocated version above, so we do not need to process // relocations for it now. - if (L && L->getLoadedSectionContents(*RelocatedSection, RelSecData)) + if (L && L->getLoadedSectionContents(*RelocatedSection,RelSecData)) continue; // In Mach-o files, the relocations do not need to be applied if @@ -1158,30 +1147,29 @@ DWARFContextInMemory::DWARFContextInMemory(const object::ObjectFile &Obj, if (Section.relocation_begin() == Section.relocation_end()) continue; - // Symbol to [address, section index] cache mapping. - std::map AddrCache; + std::map AddrCache; for (const RelocationRef &Reloc : Section.relocations()) { // FIXME: it's not clear how to correctly handle scattered // relocations. if (isRelocScattered(Obj, Reloc)) continue; - Expected SymInfoOrErr = getSymbolInfo(Obj, Reloc, L, AddrCache); - if (!SymInfoOrErr) { - errs() << toString(SymInfoOrErr.takeError()) << '\n'; + Expected SymAddrOrErr = + getSymbolAddress(Obj, Reloc, L, AddrCache); + if (!SymAddrOrErr) { + errs() << toString(SymAddrOrErr.takeError()) << '\n'; continue; } object::RelocVisitor V(Obj); - uint64_t Val = V.visit(Reloc.getType(), Reloc, SymInfoOrErr->Address); + uint64_t Val = V.visit(Reloc.getType(), Reloc, *SymAddrOrErr); if (V.error()) { SmallString<32> Name; Reloc.getTypeName(Name); errs() << "error: failed to compute relocation: " << Name << "\n"; continue; } - llvm::RelocAddrEntry Rel = {SymInfoOrErr->SectionIndex, Val}; - Map->insert({Reloc.getOffset(), Rel}); + Map->insert({Reloc.getOffset(), {Val}}); } } } diff --git a/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp b/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp index 6b5e1d3..8da7977 100644 --- a/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp @@ -35,8 +35,8 @@ bool DWARFDebugRangeList::extract(DataExtractor data, uint32_t *offset_ptr, while (true) { RangeListEntry entry; uint32_t prev_offset = *offset_ptr; - entry.StartAddress = getRelocatedValue(data, AddressSize, offset_ptr, - &Relocs, &entry.SectionIndex); + entry.StartAddress = + getRelocatedValue(data, AddressSize, offset_ptr, &Relocs); entry.EndAddress = getRelocatedValue(data, AddressSize, offset_ptr, &Relocs); @@ -69,8 +69,8 @@ DWARFDebugRangeList::getAbsoluteRanges(uint64_t BaseAddress) const { if (RLE.isBaseAddressSelectionEntry(AddressSize)) { BaseAddress = RLE.EndAddress; } else { - Res.push_back({BaseAddress + RLE.StartAddress, - BaseAddress + RLE.EndAddress, RLE.SectionIndex}); + Res.push_back( + {BaseAddress + RLE.StartAddress, BaseAddress + RLE.EndAddress}); } } return Res; diff --git a/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp b/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp index fd45c77..e3bd759 100644 --- a/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp @@ -211,16 +211,13 @@ Optional DWARFDie::getHighPC(uint64_t LowPC) const { return None; } -bool DWARFDie::getLowAndHighPC(uint64_t &LowPC, uint64_t &HighPC, - uint64_t &SectionIndex) const { - auto F = find(DW_AT_low_pc); - auto LowPcAddr = toAddress(F); +bool DWARFDie::getLowAndHighPC(uint64_t &LowPC, uint64_t &HighPC) const { + auto LowPcAddr = toAddress(find(DW_AT_low_pc)); if (!LowPcAddr) return false; if (auto HighPcAddr = getHighPC(*LowPcAddr)) { LowPC = *LowPcAddr; HighPC = *HighPcAddr; - SectionIndex = F->getSectionIndex(); return true; } return false; @@ -231,9 +228,9 @@ DWARFDie::getAddressRanges() const { if (isNULL()) return DWARFAddressRangesVector(); // Single range specified by low/high PC. - uint64_t LowPC, HighPC, Index; - if (getLowAndHighPC(LowPC, HighPC, Index)) - return {{LowPC, HighPC, Index}}; + uint64_t LowPC, HighPC; + if (getLowAndHighPC(LowPC, HighPC)) + return {{LowPC, HighPC}}; // Multiple ranges from .debug_ranges section. auto RangesOffset = toSectionOffset(find(DW_AT_ranges)); diff --git a/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp b/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp index 0963d7b..1cbd3ea 100644 --- a/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp +++ b/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp @@ -333,8 +333,8 @@ bool DWARFFormValue::extractValue(const DataExtractor &Data, return false; uint16_t AddrSize = (Form == DW_FORM_addr) ? U->getAddressByteSize() : U->getRefAddrByteSize(); - Value.uval = getRelocatedValue(Data, AddrSize, OffsetPtr, - U->getRelocMap(), &Value.SectionIndex); + Value.uval = + getRelocatedValue(Data, AddrSize, OffsetPtr, U->getRelocMap()); break; } case DW_FORM_exprloc: diff --git a/llvm/lib/Object/COFFObjectFile.cpp b/llvm/lib/Object/COFFObjectFile.cpp index 7372f24..28531fe 100644 --- a/llvm/lib/Object/COFFObjectFile.cpp +++ b/llvm/lib/Object/COFFObjectFile.cpp @@ -293,10 +293,6 @@ uint64_t COFFObjectFile::getSectionAddress(DataRefImpl Ref) const { return Result; } -uint64_t COFFObjectFile::getSectionIndex(DataRefImpl Sec) const { - return toSec(Sec) - SectionTable; -} - uint64_t COFFObjectFile::getSectionSize(DataRefImpl Ref) const { return getSectionSize(toSec(Ref)); } diff --git a/llvm/lib/Object/MachOObjectFile.cpp b/llvm/lib/Object/MachOObjectFile.cpp index bfb8875..3d3fa07 100644 --- a/llvm/lib/Object/MachOObjectFile.cpp +++ b/llvm/lib/Object/MachOObjectFile.cpp @@ -1820,10 +1820,6 @@ uint64_t MachOObjectFile::getSectionAddress(DataRefImpl Sec) const { return getSection(Sec).addr; } -uint64_t MachOObjectFile::getSectionIndex(DataRefImpl Sec) const { - return Sec.d.a; -} - uint64_t MachOObjectFile::getSectionSize(DataRefImpl Sec) const { // In the case if a malformed Mach-O file where the section offset is past // the end of the file or some part of the section size is past the end of diff --git a/llvm/lib/Object/WasmObjectFile.cpp b/llvm/lib/Object/WasmObjectFile.cpp index f565d7a..058686e 100644 --- a/llvm/lib/Object/WasmObjectFile.cpp +++ b/llvm/lib/Object/WasmObjectFile.cpp @@ -743,10 +743,6 @@ std::error_code WasmObjectFile::getSectionName(DataRefImpl Sec, uint64_t WasmObjectFile::getSectionAddress(DataRefImpl Sec) const { return 0; } -uint64_t WasmObjectFile::getSectionIndex(DataRefImpl Sec) const { - return Sec.d.a; -} - uint64_t WasmObjectFile::getSectionSize(DataRefImpl Sec) const { const WasmSection &S = Sections[Sec.d.a]; return S.Content.size(); diff --git a/llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp b/llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp index 9e84667..56d7f35 100644 --- a/llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp +++ b/llvm/unittests/DebugInfo/DWARF/DWARFDebugInfoTest.cpp @@ -853,8 +853,8 @@ template void TestAddresses() { // Get the compile unit DIE is valid. auto DieDG = U->getUnitDIE(false); EXPECT_TRUE(DieDG.isValid()); - - uint64_t LowPC, HighPC, SectionIndex; + + uint64_t LowPC, HighPC; Optional OptU64; // Verify the that our subprogram with no PC value fails appropriately when // asked for any PC values. @@ -865,14 +865,14 @@ template void TestAddresses() { EXPECT_FALSE((bool)OptU64); OptU64 = toAddress(SubprogramDieNoPC.find(DW_AT_high_pc)); EXPECT_FALSE((bool)OptU64); - EXPECT_FALSE(SubprogramDieNoPC.getLowAndHighPC(LowPC, HighPC, SectionIndex)); + EXPECT_FALSE(SubprogramDieNoPC.getLowAndHighPC(LowPC, HighPC)); OptU64 = toAddress(SubprogramDieNoPC.find(DW_AT_high_pc)); EXPECT_FALSE((bool)OptU64); OptU64 = toUnsigned(SubprogramDieNoPC.find(DW_AT_high_pc)); EXPECT_FALSE((bool)OptU64); OptU64 = SubprogramDieNoPC.getHighPC(ActualLowPC); EXPECT_FALSE((bool)OptU64); - EXPECT_FALSE(SubprogramDieNoPC.getLowAndHighPC(LowPC, HighPC, SectionIndex)); + EXPECT_FALSE(SubprogramDieNoPC.getLowAndHighPC(LowPC, HighPC)); // Verify the that our subprogram with only a low PC value succeeds when // we ask for the Low PC, but fails appropriately when asked for the high PC @@ -889,7 +889,7 @@ template void TestAddresses() { EXPECT_FALSE((bool)OptU64); OptU64 = SubprogramDieLowPC.getHighPC(ActualLowPC); EXPECT_FALSE((bool)OptU64); - EXPECT_FALSE(SubprogramDieLowPC.getLowAndHighPC(LowPC, HighPC, SectionIndex)); + EXPECT_FALSE(SubprogramDieLowPC.getLowAndHighPC(LowPC, HighPC)); // Verify the that our subprogram with only a low PC value succeeds when // we ask for the Low PC, but fails appropriately when asked for the high PC @@ -923,7 +923,7 @@ template void TestAddresses() { EXPECT_TRUE((bool)OptU64); EXPECT_EQ(OptU64.getValue(), ActualHighPC); - EXPECT_TRUE(SubprogramDieLowHighPC.getLowAndHighPC(LowPC, HighPC, SectionIndex)); + EXPECT_TRUE(SubprogramDieLowHighPC.getLowAndHighPC(LowPC, HighPC)); EXPECT_EQ(LowPC, ActualLowPC); EXPECT_EQ(HighPC, ActualHighPC); } -- 2.7.4