aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Object/Error.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2016-05-17 21:38:53 +0000
committerLang Hames <lhames@gmail.com>2016-05-17 21:38:53 +0000
commit8a63b2afc15f7cb0280c9ce1cce3ad44b43e1807 (patch)
treee3d5fd459073505a537c5cad1e177ae0a425b00c /llvm/lib/Object/Error.cpp
parent594e07bd78e7efa3690a65eb20f4620303b80da8 (diff)
downloadllvm-8a63b2afc15f7cb0280c9ce1cce3ad44b43e1807.zip
llvm-8a63b2afc15f7cb0280c9ce1cce3ad44b43e1807.tar.gz
llvm-8a63b2afc15f7cb0280c9ce1cce3ad44b43e1807.tar.bz2
[Object] Move isNotObjectErrorInvalidFileType out of header.
llvm-svn: 269848
Diffstat (limited to 'llvm/lib/Object/Error.cpp')
-rw-r--r--llvm/lib/Object/Error.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/llvm/lib/Object/Error.cpp b/llvm/lib/Object/Error.cpp
index 15bce77..8eab793 100644
--- a/llvm/lib/Object/Error.cpp
+++ b/llvm/lib/Object/Error.cpp
@@ -71,3 +71,21 @@ static ManagedStatic<_object_error_category> error_category;
const std::error_category &object::object_category() {
return *error_category;
}
+
+llvm::Error llvm::object::isNotObjectErrorInvalidFileType(llvm::Error Err) {
+ if (auto Err2 =
+ handleErrors(std::move(Err),
+ [](std::unique_ptr<ECError> M) {
+ // Try to handle 'M'. If successful, return a success value from
+ // the handler.
+ if (M->convertToErrorCode() == object_error::invalid_file_type)
+ return Error::success();
+
+ // We failed to handle 'M' - return it from the handler.
+ // This value will be passed back from catchErrors and
+ // wind up in Err2, where it will be returned from this function.
+ return Error(std::move(M));
+ }))
+ return Err2;
+ return Err;
+}