diff --git a/llvm/lib/Support/raw_ostream.cpp b/llvm/lib/Support/raw_ostream.cpp index c06ea55afcfd8..f2d78d7732397 100644 --- a/llvm/lib/Support/raw_ostream.cpp +++ b/llvm/lib/Support/raw_ostream.cpp @@ -878,7 +878,6 @@ raw_fd_ostream &llvm::outs() { raw_fd_ostream &llvm::errs() { // Set standard error to be unbuffered and tied to outs() by default. static raw_fd_ostream S(STDERR_FILENO, false, true); - S.tie(&outs()); return S; } diff --git a/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp b/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp index d9e348e92282a..47e426b2561b9 100644 --- a/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp +++ b/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp @@ -606,6 +606,10 @@ static std::vector expandBundle(const std::string &InputPath) { int main(int argc, char **argv) { InitLLVM X(argc, argv); + // Flush outs() when printing to errs(). This avoids interleaving output + // between the two. + errs().tie(&outs()); + llvm::InitializeAllTargetInfos(); llvm::InitializeAllTargetMCs();