Convert tools to use tool_output_file, and introduce error

checking to places which previously lacked it.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111651 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman
2010-08-20 16:59:15 +00:00
parent e7b67d0e94
commit f29140106f
6 changed files with 68 additions and 24 deletions

View File

@ -325,7 +325,7 @@ Module *BugDriver::ExtractMappedBlocksFromModule(const
sys::RemoveFileOnSignal(uniqueFilename);
std::string ErrorInfo;
raw_fd_ostream BlocksToNotExtractFile(uniqueFilename.c_str(), ErrorInfo);
tool_output_file BlocksToNotExtractFile(uniqueFilename.c_str(), ErrorInfo);
if (!ErrorInfo.empty()) {
outs() << "*** Basic Block extraction failed!\n";
errs() << "Error writing list of blocks to not extract: " << ErrorInfo
@ -343,6 +343,14 @@ Module *BugDriver::ExtractMappedBlocksFromModule(const
<< BB->getName() << "\n";
}
BlocksToNotExtractFile.close();
if (BlocksToNotExtractFile.has_error()) {
errs() << "Error writing list of blocks to not extract: " << ErrorInfo
<< "\n";
EmitProgressBitcode(M, "basicblockextractfail", true);
BlocksToNotExtractFile.clear_error();
return 0;
}
BlocksToNotExtractFile.keep();
std::string uniqueFN = "--extract-blocks-file=" + uniqueFilename.str();
const char *ExtraArg = uniqueFN.c_str();