[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