diff --git a/tools/lto/lto.cpp b/tools/lto/lto.cpp index b9d76d67381..b00f76539b3 100644 --- a/tools/lto/lto.cpp +++ b/tools/lto/lto.cpp @@ -102,16 +102,18 @@ findExternalRefs(Value *value, std::set &references, findExternalRefs(c->getOperand(i), references, mangler); } -/// If Moduel with InputFilename is available then remove it. +/// If Module with InputFilename is available then remove it from allModules +/// and call delete on it. void LTO::removeModule (const std::string &InputFilename) { NameToModuleMap::iterator pos = allModules.find(InputFilename.c_str()); - if (pos != allModules.end()) { - Module *m = allModules[InputFilename.c_str()]; - allModules.erase(pos); - delete m; - } + if (pos == allModules.end()) + return; + + Module *m = pos->second; + allModules.erase(pos); + delete m; } /// InputFilename is a LLVM bytecode file. If Module with InputFilename is