aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-readobj/llvm-readobj.cpp
diff options
context:
space:
mode:
authorGeorge Rimar <grimar@accesssoftek.com>2019-08-17 15:36:06 +0000
committerGeorge Rimar <grimar@accesssoftek.com>2019-08-17 15:36:06 +0000
commitc35d4c900d209b57f8cf8fe9030ecda054488b71 (patch)
tree821ea6558ffcff3dae850e26075cccacd8af7d79 /llvm/tools/llvm-readobj/llvm-readobj.cpp
parente9f28133a9fb42156a76f03e8beb85be93b793d2 (diff)
downloadllvm-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.cpp42
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: