diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2014-08-19 04:04:25 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2014-08-19 04:04:25 +0000 |
commit | 2a8a2795ee8edb8120d10c3c2af397f429b13c57 (patch) | |
tree | f77e8ceaf358640f215dc0207854cb9d00975e08 /llvm/tools/lli/lli.cpp | |
parent | 687744d0114c46529def899ee6c67428cbdf3d92 (diff) | |
download | bcm5719-llvm-2a8a2795ee8edb8120d10c3c2af397f429b13c57.tar.gz bcm5719-llvm-2a8a2795ee8edb8120d10c3c2af397f429b13c57.zip |
Make it explicit that ExecutionEngine takes ownership of the modules.
llvm-svn: 215967
Diffstat (limited to 'llvm/tools/lli/lli.cpp')
-rw-r--r-- | llvm/tools/lli/lli.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/llvm/tools/lli/lli.cpp b/llvm/tools/lli/lli.cpp index 13c32a75593..f833f63fc6c 100644 --- a/llvm/tools/lli/lli.cpp +++ b/llvm/tools/lli/lli.cpp @@ -346,7 +346,7 @@ static void addCygMingExtraModule(ExecutionEngine *EE, Triple TargetTriple(TargetTripleStr); // Create a new module. - Module *M = new Module("CygMingHelper", Context); + std::unique_ptr<Module> M = make_unique<Module>("CygMingHelper", Context); M->setTargetTriple(TargetTripleStr); // Create an empty function named "__main". @@ -354,11 +354,11 @@ static void addCygMingExtraModule(ExecutionEngine *EE, if (TargetTriple.isArch64Bit()) { Result = Function::Create( TypeBuilder<int64_t(void), false>::get(Context), - GlobalValue::ExternalLinkage, "__main", M); + GlobalValue::ExternalLinkage, "__main", M.get()); } else { Result = Function::Create( TypeBuilder<int32_t(void), false>::get(Context), - GlobalValue::ExternalLinkage, "__main", M); + GlobalValue::ExternalLinkage, "__main", M.get()); } BasicBlock *BB = BasicBlock::Create(Context, "__main", Result); Builder.SetInsertPoint(BB); @@ -370,7 +370,7 @@ static void addCygMingExtraModule(ExecutionEngine *EE, Builder.CreateRet(ReturnVal); // Add this new module to the ExecutionEngine. - EE->addModule(M); + EE->addModule(std::move(M)); } @@ -399,7 +399,8 @@ int main(int argc, char **argv, char * const *envp) { // Load the bitcode... SMDiagnostic Err; - Module *Mod = ParseIRFile(InputFile, Err, Context); + std::unique_ptr<Module> Owner(ParseIRFile(InputFile, Err, Context)); + Module *Mod = Owner.get(); if (!Mod) { Err.print(argv[0], errs()); return 1; @@ -435,7 +436,7 @@ int main(int argc, char **argv, char * const *envp) { } std::string ErrorMsg; - EngineBuilder builder(Mod); + EngineBuilder builder(std::move(Owner)); builder.setMArch(MArch); builder.setMCPU(MCPU); builder.setMAttrs(MAttrs); @@ -512,7 +513,7 @@ int main(int argc, char **argv, char * const *envp) { // Load any additional modules specified on the command line. for (unsigned i = 0, e = ExtraModules.size(); i != e; ++i) { - Module *XMod = ParseIRFile(ExtraModules[i], Err, Context); + std::unique_ptr<Module> XMod(ParseIRFile(ExtraModules[i], Err, Context)); if (!XMod) { Err.print(argv[0], errs()); return 1; @@ -525,7 +526,7 @@ int main(int argc, char **argv, char * const *envp) { } // else, we already printed a warning above. } - EE->addModule(XMod); + EE->addModule(std::move(XMod)); } for (unsigned i = 0, e = ExtraObjects.size(); i != e; ++i) { |