aboutsummaryrefslogtreecommitdiff
path: root/llvm/tools/llvm-readobj/llvm-readobj.h
diff options
context:
space:
mode:
authorZachary Turner <zturner@google.com>2017-05-03 17:11:11 +0000
committerZachary Turner <zturner@google.com>2017-05-03 17:11:11 +0000
commit2d5c2cd3ce208ebfac2bceb4c73157bef4e00fdc (patch)
treef3a5c0de380443aa47cc2d67fc0badacbceaf3d9 /llvm/tools/llvm-readobj/llvm-readobj.h
parent761bcdaf066f55075989dac2dbf0ebb148198ee0 (diff)
downloadllvm-2d5c2cd3ce208ebfac2bceb4c73157bef4e00fdc.zip
llvm-2d5c2cd3ce208ebfac2bceb4c73157bef4e00fdc.tar.gz
llvm-2d5c2cd3ce208ebfac2bceb4c73157bef4e00fdc.tar.bz2
[llvm-readobj] Update readobj to re-use parsing code.
llvm-readobj hand rolls some CodeView parsing code for string tables, so this patch updates it to re-use some of the newly introduced parsing code in LLVMDebugInfoCodeView. Differential Revision: https://reviews.llvm.org/D32772 llvm-svn: 302052
Diffstat (limited to 'llvm/tools/llvm-readobj/llvm-readobj.h')
-rw-r--r--llvm/tools/llvm-readobj/llvm-readobj.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/tools/llvm-readobj/llvm-readobj.h b/llvm/tools/llvm-readobj/llvm-readobj.h
index 0156920..840ddba 100644
--- a/llvm/tools/llvm-readobj/llvm-readobj.h
+++ b/llvm/tools/llvm-readobj/llvm-readobj.h
@@ -25,6 +25,11 @@ namespace llvm {
LLVM_ATTRIBUTE_NORETURN void reportError(Twine Msg);
void error(std::error_code EC);
void error(llvm::Error EC);
+ template <typename T> T error(llvm::Expected<T> &&E) {
+ error(E.takeError());
+ return std::move(*E);
+ }
+
template <class T> T unwrapOrError(ErrorOr<T> EO) {
if (EO)
return *EO;