summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2016-12-08 17:44:39 +0000
committerRui Ueyama <ruiu@google.com>2016-12-08 17:44:39 +0000
commit6dbf7ff74722ed004682915035af1c0a70a987c2 (patch)
tree7ea875c1f8ca8d2849ddc47ba58292867a75e15c
parente4eadb6a24ad1c597796e195b857806e97a33db2 (diff)
downloadbcm5719-llvm-6dbf7ff74722ed004682915035af1c0a70a987c2.tar.gz
bcm5719-llvm-6dbf7ff74722ed004682915035af1c0a70a987c2.zip
Use make to instantiate Target and LinkerScript. NFC.
llvm-svn: 289079
-rw-r--r--lld/ELF/Driver.cpp7
-rw-r--r--lld/ELF/Target.cpp25
2 files changed, 15 insertions, 17 deletions
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp
index 6d964c558ef..832aa72ab5d 100644
--- a/lld/ELF/Driver.cpp
+++ b/lld/ELF/Driver.cpp
@@ -755,11 +755,8 @@ static uint64_t getImageBase(opt::InputArgList &Args) {
template <class ELFT> void LinkerDriver::link(opt::InputArgList &Args) {
SymbolTable<ELFT> Symtab;
elf::Symtab<ELFT>::X = &Symtab;
-
- std::unique_ptr<TargetInfo> TI(createTarget());
- Target = TI.get();
- LinkerScript<ELFT> LS;
- ScriptBase = Script<ELFT>::X = &LS;
+ Target = createTarget();
+ ScriptBase = Script<ELFT>::X = make<LinkerScript<ELFT>>();
Config->Rela =
ELFT::Is64Bits || Config->EMachine == EM_X86_64 || Config->MipsN32Abi;
diff --git a/lld/ELF/Target.cpp b/lld/ELF/Target.cpp
index 6564de46623..73fab279b88 100644
--- a/lld/ELF/Target.cpp
+++ b/lld/ELF/Target.cpp
@@ -27,6 +27,7 @@
#include "Target.h"
#include "Error.h"
#include "InputFiles.h"
+#include "Memory.h"
#include "OutputSections.h"
#include "Symbols.h"
#include "SyntheticSections.h"
@@ -221,34 +222,34 @@ TargetInfo *createTarget() {
switch (Config->EMachine) {
case EM_386:
case EM_IAMCU:
- return new X86TargetInfo();
+ return make<X86TargetInfo>();
case EM_AARCH64:
- return new AArch64TargetInfo();
+ return make<AArch64TargetInfo>();
case EM_AMDGPU:
- return new AMDGPUTargetInfo();
+ return make<AMDGPUTargetInfo>();
case EM_ARM:
- return new ARMTargetInfo();
+ return make<ARMTargetInfo>();
case EM_MIPS:
switch (Config->EKind) {
case ELF32LEKind:
- return new MipsTargetInfo<ELF32LE>();
+ return make<MipsTargetInfo<ELF32LE>>();
case ELF32BEKind:
- return new MipsTargetInfo<ELF32BE>();
+ return make<MipsTargetInfo<ELF32BE>>();
case ELF64LEKind:
- return new MipsTargetInfo<ELF64LE>();
+ return make<MipsTargetInfo<ELF64LE>>();
case ELF64BEKind:
- return new MipsTargetInfo<ELF64BE>();
+ return make<MipsTargetInfo<ELF64BE>>();
default:
fatal("unsupported MIPS target");
}
case EM_PPC:
- return new PPCTargetInfo();
+ return make<PPCTargetInfo>();
case EM_PPC64:
- return new PPC64TargetInfo();
+ return make<PPC64TargetInfo>();
case EM_X86_64:
if (Config->EKind == ELF32LEKind)
- return new X86_64TargetInfo<ELF32LE>();
- return new X86_64TargetInfo<ELF64LE>();
+ return make<X86_64TargetInfo<ELF32LE>>();
+ return make<X86_64TargetInfo<ELF64LE>>();
}
fatal("unknown target machine");
}
OpenPOWER on IntegriCloud