From 105193772d84057493968310c1d1c6dd0f1ae735 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Sat, 4 May 2013 02:43:00 +0000 Subject: [PATCH] Don't construct or delete a module on the Linker. The linker is now responsible only for actually linking the modules, it is up to the clients to create and destroy them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181098 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Linker.h | 7 ------- lib/Linker/Linker.cpp | 5 ----- tools/lto/LTOCodeGenerator.cpp | 3 ++- 3 files changed, 2 insertions(+), 13 deletions(-) diff --git a/include/llvm/Linker.h b/include/llvm/Linker.h index 6761b8e68ed..b199a34cbf8 100644 --- a/include/llvm/Linker.h +++ b/include/llvm/Linker.h @@ -44,13 +44,6 @@ class Linker { /// @name Constructors /// @{ public: - /// Construct the Linker with an empty module which will be given the - /// name \p progname. \p progname will also be used for error messages. - /// @brief Construct with empty module - Linker(StringRef modulename, ///< name of linker's end-result module - LLVMContext &C ///< Context for global info - ); - /// Construct the Linker with a previously defined module, \p aModule. Use /// \p progname for the name of the program in error messages. /// @brief Construct with existing module diff --git a/lib/Linker/Linker.cpp b/lib/Linker/Linker.cpp index c80f8173c3f..ab99b98ee04 100644 --- a/lib/Linker/Linker.cpp +++ b/lib/Linker/Linker.cpp @@ -19,13 +19,8 @@ #include "llvm/Support/system_error.h" using namespace llvm; -Linker::Linker(StringRef modname, - LLVMContext& C): - Composite(new Module(modname, C)) { } - Linker::Linker(Module* aModule) : Composite(aModule) { } Linker::~Linker() { - delete Composite; } diff --git a/tools/lto/LTOCodeGenerator.cpp b/tools/lto/LTOCodeGenerator.cpp index 683a480d3fb..de2c1fd4b8d 100644 --- a/tools/lto/LTOCodeGenerator.cpp +++ b/tools/lto/LTOCodeGenerator.cpp @@ -69,7 +69,7 @@ const char* LTOCodeGenerator::getVersionString() { LTOCodeGenerator::LTOCodeGenerator() : _context(getGlobalContext()), - _linker("ld-temp.o", _context), _target(NULL), + _linker(new Module("ld-temp.o", _context)), _target(NULL), _emitDwarfDebugInfo(false), _scopeRestrictionsDone(false), _codeModel(LTO_CODEGEN_PIC_MODEL_DYNAMIC), _nativeObjectFile(NULL) { @@ -81,6 +81,7 @@ LTOCodeGenerator::LTOCodeGenerator() LTOCodeGenerator::~LTOCodeGenerator() { delete _target; delete _nativeObjectFile; + delete _linker.getModule(); for (std::vector::iterator I = _codegenOptions.begin(), E = _codegenOptions.end(); I != E; ++I) -- 2.34.1