Make tool_output_file's raw_ostream instance a member variable instead

of a base class.

This makes it possible to unregister the file from FilesToRemove when
the file is done. Also, this eliminates the need for
formatted_tool_output_file.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112706 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Dan Gohman
2010-09-01 14:20:41 +00:00
parent 41154114f6
commit d4c454317a
19 changed files with 198 additions and 208 deletions
+8 -8
View File
@@ -58,14 +58,14 @@ bool BugDriver::writeProgramToFile(const std::string &Filename,
tool_output_file Out(Filename.c_str(), ErrInfo,
raw_fd_ostream::F_Binary);
if (ErrInfo.empty()) {
WriteBitcodeToFile(M, Out);
Out.close();
if (!Out.has_error()) {
WriteBitcodeToFile(M, Out.os());
Out.os().close();
if (!Out.os().has_error()) {
Out.keep();
return false;
}
}
Out.clear_error();
Out.os().clear_error();
return true;
}
@@ -140,11 +140,11 @@ bool BugDriver::runPasses(Module *Program,
errs() << "Error opening bitcode file: " << inputFilename.str() << "\n";
return 1;
}
WriteBitcodeToFile(Program, InFile);
InFile.close();
if (InFile.has_error()) {
WriteBitcodeToFile(Program, InFile.os());
InFile.os().close();
if (InFile.os().has_error()) {
errs() << "Error writing bitcode file: " << inputFilename.str() << "\n";
InFile.clear_error();
InFile.os().clear_error();
return 1;
}
InFile.keep();