diff options
author | Rui Ueyama <ruiu@google.com> | 2016-12-08 17:44:39 +0000 |
---|---|---|
committer | Rui Ueyama <ruiu@google.com> | 2016-12-08 17:44:39 +0000 |
commit | 6dbf7ff74722ed004682915035af1c0a70a987c2 (patch) | |
tree | 7ea875c1f8ca8d2849ddc47ba58292867a75e15c | |
parent | e4eadb6a24ad1c597796e195b857806e97a33db2 (diff) | |
download | bcm5719-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.cpp | 7 | ||||
-rw-r--r-- | lld/ELF/Target.cpp | 25 |
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"); } |