forked from OSchip/llvm-project
parent
df7454f94b
commit
722830a51b
|
@ -186,7 +186,7 @@ uint64_t ExprParser::parseExpr() { return parseExpr1(parsePrimary(), 0); }
|
|||
template <class ELFT>
|
||||
StringRef LinkerScript<ELFT>::getOutputSection(InputSectionBase<ELFT> *S) {
|
||||
for (SectionRule &R : Opt.Sections)
|
||||
if (matchStr(R.SectionPattern, S->getSectionName()))
|
||||
if (globMatch(R.SectionPattern, S->getSectionName()))
|
||||
return R.Dest;
|
||||
return "";
|
||||
}
|
||||
|
@ -199,7 +199,7 @@ bool LinkerScript<ELFT>::isDiscarded(InputSectionBase<ELFT> *S) {
|
|||
template <class ELFT>
|
||||
bool LinkerScript<ELFT>::shouldKeep(InputSectionBase<ELFT> *S) {
|
||||
for (StringRef Pat : Opt.KeptSections)
|
||||
if (matchStr(Pat, S->getSectionName()))
|
||||
if (globMatch(Pat, S->getSectionName()))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
@ -289,7 +289,7 @@ int LinkerScript<ELFT>::compareSections(StringRef A, StringRef B) {
|
|||
// Returns true if S matches T. S can contain glob meta-characters.
|
||||
// The asterisk ('*') matches zero or more characters, and the question
|
||||
// mark ('?') matches one character.
|
||||
bool elf::matchStr(StringRef S, StringRef T) {
|
||||
bool elf::globMatch(StringRef S, StringRef T) {
|
||||
for (;;) {
|
||||
if (S.empty())
|
||||
return T.empty();
|
||||
|
@ -299,7 +299,7 @@ bool elf::matchStr(StringRef S, StringRef T) {
|
|||
// Fast path. If a pattern is '*', it matches anything.
|
||||
return true;
|
||||
for (size_t I = 0, E = T.size(); I < E; ++I)
|
||||
if (matchStr(S, T.substr(I)))
|
||||
if (globMatch(S, T.substr(I)))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
namespace lld {
|
||||
namespace elf {
|
||||
|
||||
bool matchStr(StringRef S, StringRef T);
|
||||
bool globMatch(StringRef S, StringRef T);
|
||||
|
||||
// Parses a linker script. Calling this function updates
|
||||
// Config and ScriptConfig.
|
||||
|
|
|
@ -473,7 +473,7 @@ std::vector<SymbolBody *> SymbolTable<ELFT>::findAll(StringRef Pattern) {
|
|||
for (auto &It : Symtab) {
|
||||
StringRef Name = It.first.Val;
|
||||
SymbolBody *B = SymVector[It.second]->body();
|
||||
if (!B->isUndefined() && matchStr(Pattern, Name))
|
||||
if (!B->isUndefined() && globMatch(Pattern, Name))
|
||||
Res.push_back(B);
|
||||
}
|
||||
return Res;
|
||||
|
|
Loading…
Reference in New Issue