ELF2: Inititalize other symbols only once as well.

llvm-svn: 249645
diff --git a/lld/ELF/Symbols.cpp b/lld/ELF/Symbols.cpp
index b8620b1..e92c046 100644
--- a/lld/ELF/Symbols.cpp
+++ b/lld/ELF/Symbols.cpp
@@ -86,11 +86,17 @@
   return createELFFile<ObjectFile>(MBRef);
 }
 
+template <class ELFT> static void doInitSymbols() {
+  DefinedAbsolute<ELFT>::IgnoreUndef.setBinding(STB_WEAK);
+  DefinedAbsolute<ELFT>::IgnoreUndef.setVisibility(STV_HIDDEN);
+  Undefined<ELFT>::Optional.setVisibility(STV_HIDDEN);
+}
+
 void lld::elf2::initSymbols() {
-  Undefined<ELF32LE>::Optional.setVisibility(STV_HIDDEN);
-  Undefined<ELF32BE>::Optional.setVisibility(STV_HIDDEN);
-  Undefined<ELF64LE>::Optional.setVisibility(STV_HIDDEN);
-  Undefined<ELF64BE>::Optional.setVisibility(STV_HIDDEN);
+  doInitSymbols<ELF32LE>();
+  doInitSymbols<ELF32BE>();
+  doInitSymbols<ELF64LE>();
+  doInitSymbols<ELF64BE>();
 }
 
 template int SymbolBody::compare<ELF32LE>(SymbolBody *Other);