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);