diff options
Diffstat (limited to 'tools/lto/LTOCodeGenerator.cpp')
-rw-r--r-- | tools/lto/LTOCodeGenerator.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/tools/lto/LTOCodeGenerator.cpp b/tools/lto/LTOCodeGenerator.cpp index e9e39da50b..6c4bf49485 100644 --- a/tools/lto/LTOCodeGenerator.cpp +++ b/tools/lto/LTOCodeGenerator.cpp @@ -311,13 +311,16 @@ bool LTOCodeGenerator::compile_to_file(const char** name, std::string& errMsg) { // generate object file bool genResult = false; tool_output_file objFile(uniqueObjPath.c_str(), errMsg); - if (!errMsg.empty()) + if (!errMsg.empty()) { + uniqueObjPath.eraseFromDisk(); return true; + } genResult = this->generateObjectFile(objFile.os(), errMsg); objFile.os().close(); if (objFile.os().has_error()) { objFile.os().clear_error(); + uniqueObjPath.eraseFromDisk(); return true; } @@ -344,6 +347,7 @@ const void* LTOCodeGenerator::compile(size_t* length, std::string& errMsg) { OwningPtr<MemoryBuffer> BuffPtr; if (error_code ec = MemoryBuffer::getFile(name, BuffPtr, -1, false)) { errMsg = ec.message(); + sys::Path(_nativeObjectPath).eraseFromDisk(); return NULL; } _nativeObjectFile = BuffPtr.take(); |