From: Ehsan Akhgari Date: Thu, 17 Jul 2014 19:08:19 +0000 (+0000) Subject: clang-cl: Flush stdout after writing the /showIncludes output X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=823c2c36ba649eebe8863ceed9f43ad5dd316464;p=clang clang-cl: Flush stdout after writing the /showIncludes output Summary: Before this patch, you could get lines in the output such as: Note: including file: ../../dist/include/js/Tc:/path/to/foo.cpp(1,1) : error(clang): static_assert failed... This patch ensures that the stdout output from showIncludes won't be garbled in the terminal like this, and it also helps applications that use the output to generate dependency information if they happen to capture both stdout and stderr. Test Plan: Tested locally, it's hard to write an automated test for this as the behavior depends on the buffering of the ostreams. Reviewers: nico Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D4559 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@213297 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Frontend/HeaderIncludeGen.cpp b/lib/Frontend/HeaderIncludeGen.cpp index 8b2435ba9b..a2f5896746 100644 --- a/lib/Frontend/HeaderIncludeGen.cpp +++ b/lib/Frontend/HeaderIncludeGen.cpp @@ -131,5 +131,6 @@ void HeaderIncludesCallback::FileChanged(SourceLocation Loc, Msg += '\n'; OutputFile->write(Msg.data(), Msg.size()); + OutputFile->flush(); } }