diff options
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.h')
-rw-r--r-- | llvm/tools/llvm-readobj/llvm-readobj.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.h b/llvm/tools/llvm-readobj/llvm-readobj.h index 39af4781027..3eb21e434b7 100644 --- a/llvm/tools/llvm-readobj/llvm-readobj.h +++ b/llvm/tools/llvm-readobj/llvm-readobj.h @@ -12,6 +12,7 @@ #include "llvm/Support/CommandLine.h" #include "llvm/Support/Compiler.h" +#include "llvm/Support/ErrorOr.h" #include <string> namespace llvm { @@ -22,6 +23,11 @@ namespace llvm { // Various helper functions. LLVM_ATTRIBUTE_NORETURN void reportError(Twine Msg); void error(std::error_code ec); + template <class T> T unwrapOrError(ErrorOr<T> EO) { + if (EO) + return *EO; + reportError(EO.getError().message()); + } bool relocAddressLess(object::RelocationRef A, object::RelocationRef B); } // namespace llvm |