[lld] r276717 - Split getPhdrsIndices. NFC.
Rui Ueyama via llvm-commits
llvm-commits at lists.llvm.org
Mon Jul 25 17:27:36 PDT 2016
Author: ruiu
Date: Mon Jul 25 19:27:36 2016
New Revision: 276717
URL: http://llvm.org/viewvc/llvm-project?rev=276717&view=rev
Log:
Split getPhdrsIndices. NFC.
Modified:
lld/trunk/ELF/LinkerScript.cpp
lld/trunk/ELF/LinkerScript.h
Modified: lld/trunk/ELF/LinkerScript.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/LinkerScript.cpp?rev=276717&r1=276716&r2=276717&view=diff
==============================================================================
--- lld/trunk/ELF/LinkerScript.cpp (original)
+++ lld/trunk/ELF/LinkerScript.cpp Mon Jul 25 19:27:36 2016
@@ -405,21 +405,26 @@ std::vector<size_t> LinkerScript<ELFT>::
if (!Cmd || Cmd->Name != SectionName)
continue;
- std::vector<size_t> Indices;
- for (StringRef PhdrName : Cmd->Phdrs) {
- auto ItPhdr =
- std::find_if(Opt.PhdrsCommands.rbegin(), Opt.PhdrsCommands.rend(),
- [&](PhdrsCommand &P) { return P.Name == PhdrName; });
- if (ItPhdr == Opt.PhdrsCommands.rend())
- error("section header '" + PhdrName + "' is not listed in PHDRS");
- else
- Indices.push_back(std::distance(ItPhdr, Opt.PhdrsCommands.rend()) - 1);
- }
- return Indices;
+ std::vector<size_t> Ret;
+ for (StringRef PhdrName : Cmd->Phdrs)
+ Ret.push_back(getPhdrIndex(PhdrName));
+ return Ret;
}
return {};
}
+template <class ELFT>
+size_t LinkerScript<ELFT>::getPhdrIndex(StringRef PhdrName) {
+ size_t I = 0;
+ for (PhdrsCommand &Cmd : Opt.PhdrsCommands) {
+ if (Cmd.Name == PhdrName)
+ return I;
+ ++I;
+ }
+ error("section header '" + PhdrName + "' is not listed in PHDRS");
+ return 0;
+}
+
class elf::ScriptParser : public ScriptParserBase {
typedef void (ScriptParser::*Handler)();
Modified: lld/trunk/ELF/LinkerScript.h
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/LinkerScript.h?rev=276717&r1=276716&r2=276717&view=diff
==============================================================================
--- lld/trunk/ELF/LinkerScript.h (original)
+++ lld/trunk/ELF/LinkerScript.h Mon Jul 25 19:27:36 2016
@@ -144,6 +144,7 @@ private:
int getSectionIndex(StringRef Name);
std::vector<size_t> getPhdrIndices(StringRef SectionName);
+ size_t getPhdrIndex(StringRef PhdrName);
void dispatchAssignment(SymbolAssignment *Cmd);
uintX_t Dot;
More information about the llvm-commits
mailing list