diff options
author | George Rimar <grimar@accesssoftek.com> | 2019-08-17 15:36:06 +0000 |
---|---|---|
committer | George Rimar <grimar@accesssoftek.com> | 2019-08-17 15:36:06 +0000 |
commit | c35d4c900d209b57f8cf8fe9030ecda054488b71 (patch) | |
tree | 821ea6558ffcff3dae850e26075cccacd8af7d79 /llvm/tools/llvm-readobj/llvm-readobj.cpp | |
parent | e9f28133a9fb42156a76f03e8beb85be93b793d2 (diff) | |
download | llvm-c35d4c900d209b57f8cf8fe9030ecda054488b71.zip llvm-c35d4c900d209b57f8cf8fe9030ecda054488b71.tar.gz llvm-c35d4c900d209b57f8cf8fe9030ecda054488b71.tar.bz2 |
Revert r369190, r369192 ([llvm-readobj/llvm-readelf] - Improve/cleanup the error reporting API.)
It caused multiple BB failtures:
http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/9743/steps/stage%201%20check/logs/stdio
http://lab.llvm.org:8011/builders/clang-cmake-x86_64-sde-avx512-linux/builds/26042/steps/ninja%20check%201/logs/FAIL%3A%20LLVM%3A%3Astack-sizes.test
llvm-svn: 369193
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.cpp')
-rw-r--r-- | llvm/tools/llvm-readobj/llvm-readobj.cpp | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.cpp b/llvm/tools/llvm-readobj/llvm-readobj.cpp index 00f7ab2..ec67bd5 100644 --- a/llvm/tools/llvm-readobj/llvm-readobj.cpp +++ b/llvm/tools/llvm-readobj/llvm-readobj.cpp @@ -375,46 +375,52 @@ namespace opts { namespace llvm { -LLVM_ATTRIBUTE_NORETURN static void error(Twine Msg) { - // Flush the standard output to print the error at a - // proper place. +LLVM_ATTRIBUTE_NORETURN void reportError(Twine Msg) { fouts().flush(); errs() << "\n"; WithColor::error(errs()) << Msg << "\n"; exit(1); } -LLVM_ATTRIBUTE_NORETURN void reportError(Error Err, StringRef Input) { +void reportError(Error Err, StringRef Input) { assert(Err); if (Input == "-") Input = "<stdin>"; handleAllErrors(createFileError(Input, std::move(Err)), - [&](const ErrorInfoBase &EI) { error(EI.message()); }); - llvm_unreachable("error() call should never return"); + [&](const ErrorInfoBase &EI) { reportError(EI.message()); }); } -void reportWarning(Error Err, StringRef Input) { - assert(Err); - // Flush the standard output to print the warning at a - // proper place. +void reportWarning(Twine Msg) { fouts().flush(); + errs() << "\n"; + WithColor::warning(errs()) << Msg << "\n"; +} + +void reportWarning(StringRef Input, Error Err) { if (Input == "-") Input = "<stdin>"; + warn(createFileError(Input, std::move(Err))); +} - handleAllErrors(createFileError(Input, std::move(Err)), - [&](const ErrorInfoBase &EI) { - errs() << "\n"; - WithColor::warning(errs()) << EI.message() << "\n"; - }); +void warn(Error Err) { + handleAllErrors(std::move(Err), [&](const ErrorInfoBase &EI) { + reportWarning(EI.message()); + }); } -LLVM_ATTRIBUTE_NORETURN void reportError(std::error_code EC, StringRef Input) { - assert(EC != readobj_error::success); - reportError(errorCodeToError(EC), Input); +void error(std::error_code EC) { + if (!EC) + return; + reportError(EC.message()); } } // namespace llvm +static void reportError(std::error_code EC, StringRef Input) { + assert(EC != readobj_error::success); + reportError(errorCodeToError(EC), Input); +} + static bool isMipsArch(unsigned Arch) { switch (Arch) { case llvm::Triple::mips: |