diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2018-06-16 12:11:34 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2018-06-16 12:11:34 +0000 |
commit | aec4e502620949d2f384226961118a6acbcf7d1e (patch) | |
tree | cb280bad9c866f3b35d2e1a5b5d806a80981cd70 /lld/ELF/MarkLive.cpp | |
parent | 02aa718464b66d1771e7608a33e2e22a51fb6f75 (diff) |
[ELF] Pass callables by function_ref
No need to create a heavyweight std::function if it's not stored. No
functionality change intended.
Diffstat (limited to 'lld/ELF/MarkLive.cpp')
-rw-r--r-- | lld/ELF/MarkLive.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/lld/ELF/MarkLive.cpp b/lld/ELF/MarkLive.cpp index bacbf0eee06..a8371e212c3 100644 --- a/lld/ELF/MarkLive.cpp +++ b/lld/ELF/MarkLive.cpp @@ -60,8 +60,9 @@ static typename ELFT::uint getAddend(InputSectionBase &Sec, static DenseMap<StringRef, std::vector<InputSectionBase *>> CNamedSections; template <class ELFT, class RelT> -static void resolveReloc(InputSectionBase &Sec, RelT &Rel, - std::function<void(InputSectionBase *, uint64_t)> Fn) { +static void +resolveReloc(InputSectionBase &Sec, RelT &Rel, + llvm::function_ref<void(InputSectionBase *, uint64_t)> Fn) { Symbol &B = Sec.getFile<ELFT>()->getRelocTargetSym(Rel); // If a symbol is referenced in a live section, it is used. @@ -90,7 +91,7 @@ static void resolveReloc(InputSectionBase &Sec, RelT &Rel, template <class ELFT> static void forEachSuccessor(InputSection &Sec, - std::function<void(InputSectionBase *, uint64_t)> Fn) { + llvm::function_ref<void(InputSectionBase *, uint64_t)> Fn) { if (Sec.AreRelocsRela) { for (const typename ELFT::Rela &Rel : Sec.template relas<ELFT>()) resolveReloc<ELFT>(Sec, Rel, Fn); @@ -120,7 +121,7 @@ forEachSuccessor(InputSection &Sec, template <class ELFT, class RelTy> static void scanEhFrameSection(EhInputSection &EH, ArrayRef<RelTy> Rels, - std::function<void(InputSectionBase *, uint64_t)> Fn) { + llvm::function_ref<void(InputSectionBase *, uint64_t)> Fn) { const endianness E = ELFT::TargetEndianness; for (unsigned I = 0, N = EH.Pieces.size(); I < N; ++I) { @@ -155,7 +156,7 @@ scanEhFrameSection(EhInputSection &EH, ArrayRef<RelTy> Rels, template <class ELFT> static void scanEhFrameSection(EhInputSection &EH, - std::function<void(InputSectionBase *, uint64_t)> Fn) { + llvm::function_ref<void(InputSectionBase *, uint64_t)> Fn) { if (!EH.NumRelocations) return; |