mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-13 06:06:27 +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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78953 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6c304f2314
commit
ec9b26100e
@ -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