mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-13 14:35:54 +00:00
When standard output is a terminal, set outs() to be unbuffered, to
mimic the behavior of stdtout, which is line-buffered when the output is a terminal. This fixes some issues with bugpoint output appearing being printed out of order. llvm-svn: 78953
This commit is contained in:
parent
f55822e7cd
commit
0c10b8864a
@ -315,6 +315,10 @@ raw_fd_ostream::raw_fd_ostream(const char *Filename, bool Binary, bool Force,
|
||||
if (Binary)
|
||||
sys::Program::ChangeStdoutToBinary();
|
||||
ShouldClose = false;
|
||||
// Mimic stdout by defaulting to unbuffered if the output device
|
||||
// is a terminal.
|
||||
if (sys::Process::StandardOutIsDisplayed())
|
||||
SetUnbuffered();
|
||||
return;
|
||||
}
|
||||
|
||||
@ -411,7 +415,13 @@ raw_ostream &raw_fd_ostream::resetColor() {
|
||||
// raw_stdout/err_ostream
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
raw_stdout_ostream::raw_stdout_ostream():raw_fd_ostream(STDOUT_FILENO, false) {}
|
||||
// Set buffer settings to model stdout and stderr behavior.
|
||||
// raw_ostream doesn't support line buffering, so set standard output to be
|
||||
// unbuffered when the output device is a terminal. Set standard error to
|
||||
// be unbuffered.
|
||||
raw_stdout_ostream::raw_stdout_ostream()
|
||||
: raw_fd_ostream(STDOUT_FILENO, false,
|
||||
sys::Process::StandardOutIsDisplayed()) {}
|
||||
raw_stderr_ostream::raw_stderr_ostream():raw_fd_ostream(STDERR_FILENO, false,
|
||||
true) {}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user