From 2a78bb961ad99cfc9ae4e8a05a9a5a6bf84e41f3 Mon Sep 17 00:00:00 2001 From: Andrew Trick Date: Tue, 5 Feb 2013 22:50:20 +0000 Subject: Revert "[Support][ErrorOr] Add support for convertable types." This reverts commit a33e1fafac7fedb1b080ef07ddf9ad6ddff3a830. This unit test crashes on Darwon. It needs to be temporarily reverted to unblock the test infrastructure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174458 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Support/ErrorOr.h | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) (limited to 'include/llvm/Support/ErrorOr.h') diff --git a/include/llvm/Support/ErrorOr.h b/include/llvm/Support/ErrorOr.h index c22c3ca84f..828d77b852 100644 --- a/include/llvm/Support/ErrorOr.h +++ b/include/llvm/Support/ErrorOr.h @@ -162,7 +162,6 @@ public: /// T cannot be a rvalue reference. template class ErrorOr { - template friend class ErrorOr; static const bool isRef = is_reference::value; typedef ReferenceStorage::type> wrap; @@ -199,8 +198,7 @@ public: new (get()) storage_type(moveIfMoveConstructible(Val)); } - template - ErrorOr(ErrorOr &Other) : IsValid(false) { + ErrorOr(const ErrorOr &Other) : IsValid(false) { // Construct an invalid ErrorOr if other is invalid. if (!Other.IsValid) return; @@ -228,8 +226,7 @@ public: } #if LLVM_HAS_RVALUE_REFERENCES - template - ErrorOr(ErrorOr &&Other) : IsValid(false) { + ErrorOr(ErrorOr &&Other) : IsValid(false) { // Construct an invalid ErrorOr if other is invalid. if (!Other.IsValid) return; @@ -311,6 +308,7 @@ private: return &Val->get(); } +protected: storage_type *get() { assert(IsValid && "Can't do anything on a default constructed ErrorOr!"); assert(!HasError && "Cannot get value when an error exists!"); -- cgit v1.2.3