aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-objdump/llvm-objdump.h
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2019-04-07 08:19:55 +0000
committerFangrui Song <maskray@google.com>2019-04-07 08:19:55 +0000
commite7834bd159b763c5a6f3264cd16ca0161fed2cfa (patch)
tree9b80910c9083ad1caad9824396b54611880f6bc0 /llvm/tools/llvm-objdump/llvm-objdump.h
parent30eb5758112a7f972d4ffea4ed0aa5f1c2732b40 (diff)
downloadllvm-e7834bd159b763c5a6f3264cd16ca0161fed2cfa.zip
llvm-e7834bd159b763c5a6f3264cd16ca0161fed2cfa.tar.gz
llvm-e7834bd159b763c5a6f3264cd16ca0161fed2cfa.tar.bz2
[llvm-objdump] Simplify Expected<T> handling with unwrapOrError
llvm-svn: 357855
Diffstat (limited to 'llvm/tools/llvm-objdump/llvm-objdump.h')
-rw-r--r--llvm/tools/llvm-objdump/llvm-objdump.h25
1 files changed, 14 insertions, 11 deletions
diff --git a/llvm/tools/llvm-objdump/llvm-objdump.h b/llvm/tools/llvm-objdump/llvm-objdump.h
index e4c51e6..fc836e6 100644
--- a/llvm/tools/llvm-objdump/llvm-objdump.h
+++ b/llvm/tools/llvm-objdump/llvm-objdump.h
@@ -176,17 +176,20 @@ void warn(StringRef Message);
LLVM_ATTRIBUTE_NORETURN void error(Twine Message);
LLVM_ATTRIBUTE_NORETURN void report_error(StringRef File, Twine Message);
LLVM_ATTRIBUTE_NORETURN void report_error(StringRef File, std::error_code EC);
-LLVM_ATTRIBUTE_NORETURN void report_error(StringRef File, llvm::Error E);
-LLVM_ATTRIBUTE_NORETURN void report_error(StringRef FileName,
- StringRef ArchiveName,
- llvm::Error E,
- StringRef ArchitectureName
- = StringRef());
-LLVM_ATTRIBUTE_NORETURN void report_error(StringRef ArchiveName,
- const object::Archive::Child &C,
- llvm::Error E,
- StringRef ArchitectureName
- = StringRef());
+LLVM_ATTRIBUTE_NORETURN void report_error(Error E, StringRef File);
+LLVM_ATTRIBUTE_NORETURN void
+report_error(Error E, StringRef FileName, StringRef ArchiveName,
+ StringRef ArchitectureName = StringRef());
+LLVM_ATTRIBUTE_NORETURN void
+report_error(Error E, StringRef ArchiveName, const object::Archive::Child &C,
+ StringRef ArchitectureName = StringRef());
+
+template <typename T, typename... Ts>
+T unwrapOrError(Expected<T> EO, Ts &&... Args) {
+ if (EO)
+ return std::move(*EO);
+ report_error(EO.takeError(), std::forward<Ts>(Args)...);
+}
} // end namespace llvm