diff options
author | Fangrui Song <maskray@google.com> | 2020-05-30 17:25:18 -0700 |
---|---|---|
committer | Fangrui Song <maskray@google.com> | 2020-05-30 17:25:59 -0700 |
commit | a23d1e9aff4d8cb752e227b3e16f887cf49c15d4 (patch) | |
tree | bc7ab2471608e92da7425f52e3f4bdcccd50afbb /llvm/tools/llvm-objdump/llvm-objdump.cpp | |
parent | 07e8a780d81bb58a0c7bd4da6cc0b9beaec3c788 (diff) | |
download | llvm-a23d1e9aff4d8cb752e227b3e16f887cf49c15d4.zip llvm-a23d1e9aff4d8cb752e227b3e16f887cf49c15d4.tar.gz llvm-a23d1e9aff4d8cb752e227b3e16f887cf49c15d4.tar.bz2 |
[llvm-objdump] Simplify reportError() and prepend outs().flush()
As noticed by dblaikie.
I don't know what code paths using reportError can cause stdout output
to be interleaved with stderr, so no test is added now.
Also drop an unneeded use of errs().fflush() in reportWarning().
I requested this in D64165.
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.cpp')
-rw-r--r-- | llvm/tools/llvm-objdump/llvm-objdump.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.cpp b/llvm/tools/llvm-objdump/llvm-objdump.cpp index 6eebf98..d62839a 100644 --- a/llvm/tools/llvm-objdump/llvm-objdump.cpp +++ b/llvm/tools/llvm-objdump/llvm-objdump.cpp @@ -420,10 +420,10 @@ void reportWarning(Twine Message, StringRef File) { outs().flush(); WithColor::warning(errs(), ToolName) << "'" << File << "': " << Message << "\n"; - errs().flush(); } LLVM_ATTRIBUTE_NORETURN void reportError(StringRef File, Twine Message) { + outs().flush(); WithColor::error(errs(), ToolName) << "'" << File << "': " << Message << "\n"; exit(1); } @@ -432,6 +432,7 @@ LLVM_ATTRIBUTE_NORETURN void reportError(Error E, StringRef FileName, StringRef ArchiveName, StringRef ArchitectureName) { assert(E); + outs().flush(); WithColor::error(errs(), ToolName); if (ArchiveName != "") errs() << ArchiveName << "(" << FileName << ")"; @@ -439,11 +440,8 @@ LLVM_ATTRIBUTE_NORETURN void reportError(Error E, StringRef FileName, errs() << "'" << FileName << "'"; if (!ArchitectureName.empty()) errs() << " (for architecture " << ArchitectureName << ")"; - std::string Buf; - raw_string_ostream OS(Buf); - logAllUnhandledErrors(std::move(E), OS); - OS.flush(); - errs() << ": " << Buf; + errs() << ": "; + logAllUnhandledErrors(std::move(E), errs()); exit(1); } |