Handle undef symbols in LTO.
This also handles bc files is archives.
llvm-svn: 261374
diff --git a/lld/ELF/InputFiles.cpp b/lld/ELF/InputFiles.cpp
index d64d6b4..5a942ba 100644
--- a/lld/ELF/InputFiles.cpp
+++ b/lld/ELF/InputFiles.cpp
@@ -446,7 +446,11 @@
raw_svector_ostream OS(Name);
Sym.printName(OS);
StringRef NameRef = Saver.save(StringRef(Name));
- SymbolBody *Body = new (Alloc) DefinedBitcode(NameRef);
+ SymbolBody *Body;
+ if (Sym.getFlags() & object::BasicSymbolRef::SF_Undefined)
+ Body = new (Alloc) Undefined(NameRef, false, STV_DEFAULT, false);
+ else
+ Body = new (Alloc) DefinedBitcode(NameRef);
SymbolBodies.push_back(Body);
}
}