aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objdump/llvm-objdump.cpp
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2020-05-30 17:25:18 -0700
committerFangrui Song <maskray@google.com>2020-05-30 17:25:59 -0700
commita23d1e9aff4d8cb752e227b3e16f887cf49c15d4 (patch)
treebc7ab2471608e92da7425f52e3f4bdcccd50afbb /llvm/tools/llvm-objdump/llvm-objdump.cpp
parent07e8a780d81bb58a0c7bd4da6cc0b9beaec3c788 (diff)
downloadllvm-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.cpp10
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);
}