summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/ELF/Driver.cpp3
-rw-r--r--lld/ELF/Target.cpp2
-rw-r--r--lld/ELF/Target.h2
3 files changed, 4 insertions, 3 deletions
diff --git a/lld/ELF/Driver.cpp b/lld/ELF/Driver.cpp
index a58a7c4754e..f12806d91c6 100644
--- a/lld/ELF/Driver.cpp
+++ b/lld/ELF/Driver.cpp
@@ -294,7 +294,8 @@ void LinkerDriver::createFiles(opt::InputArgList &Args) {
template <class ELFT> void LinkerDriver::link(opt::InputArgList &Args) {
SymbolTable<ELFT> Symtab;
- Target.reset(createTarget());
+ std::unique_ptr<TargetInfo> TI(createTarget());
+ Target = TI.get();
Script->finalize();
if (!Config->Shared) {
diff --git a/lld/ELF/Target.cpp b/lld/ELF/Target.cpp
index ff30b8a1724..444cbb3cbb1 100644
--- a/lld/ELF/Target.cpp
+++ b/lld/ELF/Target.cpp
@@ -33,7 +33,7 @@ using namespace llvm::ELF;
namespace lld {
namespace elf2 {
-std::unique_ptr<TargetInfo> Target;
+TargetInfo *Target;
template <endianness E> static void add32(void *P, int32_t V) {
write32<E>(P, read32<E>(P) + V);
diff --git a/lld/ELF/Target.h b/lld/ELF/Target.h
index d4658e139ec..c58fc672888 100644
--- a/lld/ELF/Target.h
+++ b/lld/ELF/Target.h
@@ -100,7 +100,7 @@ typename llvm::object::ELFFile<ELFT>::uintX_t getMipsGpAddr();
template <class ELFT> bool isGnuIFunc(const SymbolBody &S);
-extern std::unique_ptr<TargetInfo> Target;
+extern TargetInfo *Target;
TargetInfo *createTarget();
}
}
OpenPOWER on IntegriCloud