Simplify the InputFile type hierarchy.

Now that the SymbolTable is templated, we don't need the ELFData class or
multiple inheritance.

llvm-svn: 250005
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp
index 0e081d1..7f8f6f4 100644
--- a/lld/ELF/Driver.cpp
+++ b/lld/ELF/Driver.cpp
@@ -100,12 +100,9 @@
     }
     Files.push_back(make_unique<ArchiveFile>(MBRef));
     return;
-  case file_magic::elf_shared_object: {
-    std::unique_ptr<ELFFileBase> File = createELFFile<SharedFile>(MBRef);
-    cast<SharedFileBase>(File.get())->AsNeeded = Config->AsNeeded;
-    Files.push_back(std::move(File));
+  case file_magic::elf_shared_object:
+    Files.push_back(createELFFile<SharedFile>(MBRef));
     return;
-  }
   default:
     Files.push_back(createELFFile<ObjectFile>(MBRef));
   }