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