mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-08-09 11:25:55 +00:00
Revert "[Support][ErrorOr] Add support for convertable types."
This reverts commit a33e1fafac
.
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
This commit is contained in:
@@ -162,7 +162,6 @@ public:
|
|||||||
/// T cannot be a rvalue reference.
|
/// T cannot be a rvalue reference.
|
||||||
template<class T>
|
template<class T>
|
||||||
class ErrorOr {
|
class ErrorOr {
|
||||||
template <class OtherT> friend class ErrorOr;
|
|
||||||
static const bool isRef = is_reference<T>::value;
|
static const bool isRef = is_reference<T>::value;
|
||||||
typedef ReferenceStorage<typename remove_reference<T>::type> wrap;
|
typedef ReferenceStorage<typename remove_reference<T>::type> wrap;
|
||||||
|
|
||||||
@@ -199,8 +198,7 @@ public:
|
|||||||
new (get()) storage_type(moveIfMoveConstructible<storage_type>(Val));
|
new (get()) storage_type(moveIfMoveConstructible<storage_type>(Val));
|
||||||
}
|
}
|
||||||
|
|
||||||
template <class OtherT>
|
ErrorOr(const ErrorOr &Other) : IsValid(false) {
|
||||||
ErrorOr(ErrorOr<OtherT> &Other) : IsValid(false) {
|
|
||||||
// Construct an invalid ErrorOr if other is invalid.
|
// Construct an invalid ErrorOr if other is invalid.
|
||||||
if (!Other.IsValid)
|
if (!Other.IsValid)
|
||||||
return;
|
return;
|
||||||
@@ -228,8 +226,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if LLVM_HAS_RVALUE_REFERENCES
|
#if LLVM_HAS_RVALUE_REFERENCES
|
||||||
template <class OtherT>
|
ErrorOr(ErrorOr &&Other) : IsValid(false) {
|
||||||
ErrorOr(ErrorOr<OtherT> &&Other) : IsValid(false) {
|
|
||||||
// Construct an invalid ErrorOr if other is invalid.
|
// Construct an invalid ErrorOr if other is invalid.
|
||||||
if (!Other.IsValid)
|
if (!Other.IsValid)
|
||||||
return;
|
return;
|
||||||
@@ -311,6 +308,7 @@ private:
|
|||||||
return &Val->get();
|
return &Val->get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
storage_type *get() {
|
storage_type *get() {
|
||||||
assert(IsValid && "Can't do anything on a default constructed ErrorOr!");
|
assert(IsValid && "Can't do anything on a default constructed ErrorOr!");
|
||||||
assert(!HasError && "Cannot get value when an error exists!");
|
assert(!HasError && "Cannot get value when an error exists!");
|
||||||
|
@@ -53,17 +53,6 @@ TEST(ErrorOr, Types) {
|
|||||||
EXPECT_EQ(3, **t3());
|
EXPECT_EQ(3, **t3());
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
struct B {};
|
|
||||||
struct D : B {};
|
|
||||||
|
|
||||||
TEST(ErrorOr, Covariant) {
|
|
||||||
ErrorOr<B*> b(ErrorOr<D*>(0));
|
|
||||||
|
|
||||||
#if LLVM_HAS_CXX11_STDLIB
|
|
||||||
ErrorOr<std::unique_ptr<B> > b1(ErrorOr<std::unique_ptr<D> >(0));
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
} // end anon namespace
|
} // end anon namespace
|
||||||
|
|
||||||
struct InvalidArgError {
|
struct InvalidArgError {
|
||||||
|
Reference in New Issue
Block a user