diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2013-05-04 02:43:00 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2013-05-04 02:43:00 +0000 |
commit | 105193772d84057493968310c1d1c6dd0f1ae735 (patch) | |
tree | 49b0aa2d644fe8c7bfb1555b783433b6c55fafcf | |
parent | bcc6ac93bae207431efff90dfb3e741ffdf11469 (diff) |
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
-rw-r--r-- | include/llvm/Linker.h | 7 | ||||
-rw-r--r-- | lib/Linker/Linker.cpp | 5 | ||||
-rw-r--r-- | 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 6761b8e68e..b199a34cbf 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 c80f8173c3..ab99b98ee0 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 683a480d3f..de2c1fd4b8 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<char*>::iterator I = _codegenOptions.begin(), E = _codegenOptions.end(); I != E; ++I) |