ELF2: Simplify Writer interface.
We are using Writer more like a function instead of a class.
This patch makes it a function to simplify the interface.
All details of Writer class is now hidden from other parts of the linker.
llvm-svn: 244169
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp
index 9964630..ab4fc2e 100644
--- a/lld/ELF/Driver.cpp
+++ b/lld/ELF/Driver.cpp
@@ -7,8 +7,10 @@
//
//===----------------------------------------------------------------------===//
-#include "Driver.h"
#include "Config.h"
+#include "Driver.h"
+#include "InputFiles.h"
+#include "SymbolTable.h"
#include "Writer.h"
#include "llvm/ADT/STLExtras.h"
@@ -116,25 +118,17 @@
// Write the result.
ObjectFileBase &FirstObj = *Symtab.ObjectFiles[0];
switch (FirstObj.kind()) {
- case InputFile::Object32LEKind: {
- Writer<object::ELF32LE> Out(&Symtab);
- Out.write(Config->OutputFile);
+ case InputFile::Object32LEKind:
+ writeResult<object::ELF32LE>(&Symtab, Config->OutputFile);
return;
- }
- case InputFile::Object32BEKind: {
- Writer<object::ELF32BE> Out(&Symtab);
- Out.write(Config->OutputFile);
+ case InputFile::Object32BEKind:
+ writeResult<object::ELF32BE>(&Symtab, Config->OutputFile);
return;
- }
- case InputFile::Object64LEKind: {
- Writer<object::ELF64LE> Out(&Symtab);
- Out.write(Config->OutputFile);
+ case InputFile::Object64LEKind:
+ writeResult<object::ELF64LE>(&Symtab, Config->OutputFile);
return;
- }
- case InputFile::Object64BEKind: {
- Writer<object::ELF64BE> Out(&Symtab);
- Out.write(Config->OutputFile);
+ case InputFile::Object64BEKind:
+ writeResult<object::ELF64BE>(&Symtab, Config->OutputFile);
return;
}
- }
}