[lld] r280066 - [ELF] - Cleanup of scanVersionScript(): do not change local Demangled variable. NFC.
George Rimar via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 30 02:29:37 PDT 2016
Author: grimar
Date: Tue Aug 30 04:29:37 2016
New Revision: 280066
URL: http://llvm.org/viewvc/llvm-project?rev=280066&view=rev
Log:
[ELF] - Cleanup of scanVersionScript(): do not change local Demangled variable. NFC.
Modified:
lld/trunk/ELF/SymbolTable.cpp
Modified: lld/trunk/ELF/SymbolTable.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/SymbolTable.cpp?rev=280066&r1=280065&r2=280066&view=diff
==============================================================================
--- lld/trunk/ELF/SymbolTable.cpp (original)
+++ lld/trunk/ELF/SymbolTable.cpp Tue Aug 30 04:29:37 2016
@@ -613,6 +613,14 @@ static bool hasExternCpp() {
return false;
}
+static SymbolBody *findDemangled(const std::map<std::string, SymbolBody *> &D,
+ StringRef Name) {
+ auto I = D.find(Name);
+ if (I != D.end())
+ return I->second;
+ return nullptr;
+}
+
// This function processes the --version-script option by marking all global
// symbols with the VersionScriptGlobal flag, which acts as a filter on the
// dynamic symbol table.
@@ -647,8 +655,9 @@ template <class ELFT> void SymbolTable<E
for (SymbolVersion Sym : V.Globals) {
if (hasWildcard(Sym.Name))
continue;
- SymbolBody *B = Sym.IsExternCpp ? Demangled[Sym.Name] : find(Sym.Name);
- setVersionId(B, V.Name, Sym.Name, V.Id);
+ StringRef N = Sym.Name;
+ SymbolBody *B = Sym.IsExternCpp ? findDemangled(Demangled, N) : find(N);
+ setVersionId(B, V.Name, N, V.Id);
}
}
More information about the llvm-commits
mailing list