diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2016-02-17 16:21:49 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2016-02-17 16:21:49 +0000 |
commit | f04f184d9c4d7c079d67488f714f02e3fa16bd93 (patch) | |
tree | 30568582f4c1eee30013213df397e3a7ba5b3b04 /llvm/tools/llvm-readobj/llvm-readobj.h | |
parent | 1fb8bc7a30cca842908bdcef576aaa5e93a99842 (diff) | |
download | llvm-f04f184d9c4d7c079d67488f714f02e3fa16bd93.zip llvm-f04f184d9c4d7c079d67488f714f02e3fa16bd93.tar.gz llvm-f04f184d9c4d7c079d67488f714f02e3fa16bd93.tar.bz2 |
Add a unwrapOrError utility and use it to simplify ELFDumper.cpp.
Utility extracted from r260488.
llvm-svn: 261103
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 39af478..3eb21e4 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 |