summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lld/include/lld/Core/Writer.h7
-rw-r--r--lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp2
-rw-r--r--lld/lib/ReaderWriter/ELF/Writer.cpp4
3 files changed, 6 insertions, 7 deletions
diff --git a/lld/include/lld/Core/Writer.h b/lld/include/lld/Core/Writer.h
index 4a66cff935c..b0193c0e5a6 100644
--- a/lld/include/lld/Core/Writer.h
+++ b/lld/include/lld/Core/Writer.h
@@ -15,12 +15,11 @@
#include <vector>
namespace lld {
-class File;
class ELFLinkingContext;
+class File;
+class LinkingContext;
class MachOLinkingContext;
class PECOFFLinkingContext;
-class LinkingContext;
-class TargetHandler;
/// \brief The Writer is an abstract class for writing object files, shared
/// library files, and executable files. Each file format (e.g. ELF, mach-o,
@@ -42,7 +41,7 @@ protected:
Writer();
};
-std::unique_ptr<Writer> createWriterELF(TargetHandler *handler);
+std::unique_ptr<Writer> createWriterELF(const ELFLinkingContext &);
std::unique_ptr<Writer> createWriterMachO(const MachOLinkingContext &);
std::unique_ptr<Writer> createWriterPECOFF(const PECOFFLinkingContext &);
std::unique_ptr<Writer> createWriterNative();
diff --git a/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp b/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp
index 23a14caddb6..8f4581a9cd4 100644
--- a/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp
+++ b/lld/lib/ReaderWriter/ELF/ELFLinkingContext.cpp
@@ -79,7 +79,7 @@ bool ELFLinkingContext::validateImpl(raw_ostream &diagnostics) {
llvm_unreachable("Unimplemented");
break;
default:
- _writer = createWriterELF(&this->getTargetHandler());
+ _writer = createWriterELF(*this);
break;
}
diff --git a/lld/lib/ReaderWriter/ELF/Writer.cpp b/lld/lib/ReaderWriter/ELF/Writer.cpp
index 1e970b65a7f..1c5d9766e9c 100644
--- a/lld/lib/ReaderWriter/ELF/Writer.cpp
+++ b/lld/lib/ReaderWriter/ELF/Writer.cpp
@@ -16,8 +16,8 @@ using namespace llvm::object;
namespace lld {
-std::unique_ptr<Writer> createWriterELF(TargetHandler *handler) {
- return std::move(handler->getWriter());
+std::unique_ptr<Writer> createWriterELF(const ELFLinkingContext &ctx) {
+ return ctx.getTargetHandler().getWriter();
}
} // namespace lld
OpenPOWER on IntegriCloud