diff --git a/tools/opt/GraphPrinters.cpp b/tools/opt/GraphPrinters.cpp index 6bd0a6e9f76..c38469cc129 100644 --- a/tools/opt/GraphPrinters.cpp +++ b/tools/opt/GraphPrinters.cpp @@ -28,9 +28,10 @@ static void WriteGraphToFile(std::ostream &O, const std::string &GraphName, const GraphType >) { 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!"; diff --git a/tools/opt/opt.cpp b/tools/opt/opt.cpp index f41b2023490..ffe53d5dd1b 100644 --- a/tools/opt/opt.cpp +++ b/tools/opt/opt.cpp @@ -141,7 +141,7 @@ struct CallGraphSCCPassPrinter : public CallGraphSCCPass { if (F) { outs().flush(); getAnalysisID(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(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(PassToPrint).print(outs(), F.getParent()); - cout << std::flush; + outs().flush(); return false; } @@ -226,7 +226,7 @@ struct LoopPassPrinter : public LoopPass { outs().flush(); getAnalysisID(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(PassToPrint).print(outs(), BB.getParent()->getParent()); - cout << std::flush; + outs().flush(); return false; }