diff --git a/clang/lib/Frontend/FrontendActions.cpp b/clang/lib/Frontend/FrontendActions.cpp --- a/clang/lib/Frontend/FrontendActions.cpp +++ b/clang/lib/Frontend/FrontendActions.cpp @@ -781,13 +781,16 @@ std::unique_ptr OutFile; CompilerInstance &CI = getCompilerInstance(); StringRef OutputFileName = CI.getFrontendOpts().OutputFile; + llvm::raw_ostream *POut = &llvm::outs(); if (!OutputFileName.empty() && OutputFileName != "-") { std::error_code EC; OutFile.reset(new llvm::raw_fd_ostream(OutputFileName.str(), EC, llvm::sys::fs::OF_TextWithCRLF)); - OutputStream = OutFile.get(); + POut = OutFile.get(); + } else if (OutputStream) { + POut = OutputStream; } - llvm::raw_ostream &Out = OutputStream ? *OutputStream : llvm::outs(); + llvm::raw_ostream &Out = *POut; Out << "Information for module file '" << getCurrentFile() << "':\n"; auto &FileMgr = CI.getFileManager();