summaryrefslogtreecommitdiffstats
path: root/lld/ELF/Driver.cpp
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2015-08-05 23:24:46 +0000
committerRui Ueyama <ruiu@google.com>2015-08-05 23:24:46 +0000
commitafff74e2286cb81be4d78ea9704b96779c302dc7 (patch)
treec70fb5c95d81557978211990e29ab15e5d8d6a36 /lld/ELF/Driver.cpp
parent2705097e47c6289c8d636a678a6bff3d691bcb12 (diff)
downloadbcm5719-llvm-afff74e2286cb81be4d78ea9704b96779c302dc7.tar.gz
bcm5719-llvm-afff74e2286cb81be4d78ea9704b96779c302dc7.zip
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
Diffstat (limited to 'lld/ELF/Driver.cpp')
-rw-r--r--lld/ELF/Driver.cpp28
1 files changed, 11 insertions, 17 deletions
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp
index 99646305865..ab4fc2ec998 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 @@ void LinkerDriver::link(ArrayRef<const char *> ArgsArr) {
// 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;
}
- }
}
OpenPOWER on IntegriCloud