use raw_fd_ostream instead of fstream with graphwriter,

flush the right stream in opt.cpp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79837 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2009-08-23 07:31:22 +00:00
parent 103289e938
commit 2e35bec78a
2 changed files with 8 additions and 7 deletions

View File

@ -28,9 +28,10 @@ static void WriteGraphToFile(std::ostream &O, const std::string &GraphName,
const GraphType &GT) {
std::string Filename = GraphName + ".dot";
O << "Writing '" << Filename << "'...";
std::ofstream F(Filename.c_str());
std::string ErrInfo;
raw_fd_ostream F(Filename.c_str(), ErrInfo, raw_fd_ostream::F_Force);
if (F.good())
if (ErrInfo.empty())
WriteGraph(F, GT);
else
O << " error opening file for writing!";

View File

@ -141,7 +141,7 @@ struct CallGraphSCCPassPrinter : public CallGraphSCCPass {
if (F) {
outs().flush();
getAnalysisID<Pass>(PassToPrint).print(outs(), F->getParent());
cout << std::flush;
outs().flush();
}
}
}
@ -170,7 +170,7 @@ struct ModulePassPrinter : public ModulePass {
outs() << "Printing analysis '" << PassToPrint->getPassName() << "':\n";
outs().flush();
getAnalysisID<Pass>(PassToPrint).print(outs(), &M);
cout << std::flush;
outs().flush();
}
// Get and print pass...
@ -200,7 +200,7 @@ struct FunctionPassPrinter : public FunctionPass {
// Get and print pass...
outs().flush();
getAnalysisID<Pass>(PassToPrint).print(outs(), F.getParent());
cout << std::flush;
outs().flush();
return false;
}
@ -226,7 +226,7 @@ struct LoopPassPrinter : public LoopPass {
outs().flush();
getAnalysisID<Pass>(PassToPrint).print(outs(),
L->getHeader()->getParent()->getParent());
cout << std::flush;
outs().flush();
}
// Get and print pass...
return false;
@ -257,7 +257,7 @@ struct BasicBlockPassPrinter : public BasicBlockPass {
// Get and print pass...
outs().flush();
getAnalysisID<Pass>(PassToPrint).print(outs(), BB.getParent()->getParent());
cout << std::flush;
outs().flush();
return false;
}