summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/ELF/DWARF.cpp5
-rw-r--r--lld/ELF/InputSection.cpp8
2 files changed, 5 insertions, 8 deletions
diff --git a/lld/ELF/DWARF.cpp b/lld/ELF/DWARF.cpp
index 2e0e677d7c7..6b90a038e87 100644
--- a/lld/ELF/DWARF.cpp
+++ b/lld/ELF/DWARF.cpp
@@ -81,9 +81,8 @@ template <class RelTy>
Optional<RelocAddrEntry>
LLDDwarfObj<ELFT>::findAux(const InputSectionBase &Sec, uint64_t Pos,
ArrayRef<RelTy> Rels) const {
- auto It = std::lower_bound(
- Rels.begin(), Rels.end(), Pos,
- [](const RelTy &A, uint64_t B) { return A.r_offset < B; });
+ auto It =
+ llvm::bsearch(Rels, [=](const RelTy &A) { return Pos <= A.r_offset; });
if (It == Rels.end() || It->r_offset != Pos)
return None;
const RelTy &Rel = *It;
diff --git a/lld/ELF/InputSection.cpp b/lld/ELF/InputSection.cpp
index 58c3513aeff..0ed3a70156f 100644
--- a/lld/ELF/InputSection.cpp
+++ b/lld/ELF/InputSection.cpp
@@ -1224,11 +1224,9 @@ SectionPiece *MergeInputSection::getSectionPiece(uint64_t Offset) {
// If Offset is not at beginning of a section piece, it is not in the map.
// In that case we need to do a binary search of the original section piece vector.
- auto It2 =
- llvm::upper_bound(Pieces, Offset, [](uint64_t Offset, SectionPiece P) {
- return Offset < P.InputOff;
- });
- return &It2[-1];
+ auto It = llvm::bsearch(Pieces,
+ [=](SectionPiece P) { return Offset < P.InputOff; });
+ return &It[-1];
}
// Returns the offset in an output section for a given input offset.
OpenPOWER on IntegriCloud