diff options
author | Eric Fiselier <eric@efcs.ca> | 2017-06-07 09:06:05 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2017-06-07 09:06:05 +0000 |
commit | bc8383e76c61be05e1a63eb0a811d4797035cda1 (patch) | |
tree | 48f00ef3d5c8bbfb11bec37c5c438a02ea64650a /libcxx/test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp | |
parent | 9afd9d9254e634b3c408c886320c820b8b101b81 (diff) | |
download | bcm5719-llvm-bc8383e76c61be05e1a63eb0a811d4797035cda1.tar.gz bcm5719-llvm-bc8383e76c61be05e1a63eb0a811d4797035cda1.zip |
Fix test with exceptions disabled
llvm-svn: 304883
Diffstat (limited to 'libcxx/test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp')
-rw-r--r-- | libcxx/test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp | 59 |
1 files changed, 30 insertions, 29 deletions
diff --git a/libcxx/test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp b/libcxx/test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp index c76d2b66aea..9dfd09e94a9 100644 --- a/libcxx/test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp +++ b/libcxx/test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp @@ -107,35 +107,6 @@ struct CopyDoesThrow { CopyDoesThrow &operator=(const CopyDoesThrow &) noexcept(false); }; -#ifndef TEST_HAS_NO_EXCEPTIONS -struct CopyThrows { - CopyThrows() = default; - CopyThrows(const CopyThrows &) { throw 42; } - CopyThrows &operator=(const CopyThrows &) { throw 42; } -}; - -struct CopyCannotThrow { - static int alive; - CopyCannotThrow() { ++alive; } - CopyCannotThrow(const CopyCannotThrow &) noexcept { ++alive; } - CopyCannotThrow(CopyCannotThrow &&) noexcept { assert(false); } - CopyCannotThrow &operator=(const CopyCannotThrow &) noexcept = default; - CopyCannotThrow &operator=(CopyCannotThrow &&) noexcept { assert(false); return *this; } -}; - -int CopyCannotThrow::alive = 0; - -struct MoveThrows { - static int alive; - MoveThrows() { ++alive; } - MoveThrows(const MoveThrows &) { ++alive; } - MoveThrows(MoveThrows &&) { throw 42; } - MoveThrows &operator=(const MoveThrows &) { return *this; } - MoveThrows &operator=(MoveThrows &&) { throw 42; } - ~MoveThrows() { --alive; } -}; - -int MoveThrows::alive = 0; struct NTCopyAssign { constexpr NTCopyAssign(int v) : value(v) {} @@ -178,6 +149,36 @@ struct TCopyAssignNTMoveAssign { static_assert(std::is_trivially_copy_assignable_v<TCopyAssignNTMoveAssign>, ""); +#ifndef TEST_HAS_NO_EXCEPTIONS +struct CopyThrows { + CopyThrows() = default; + CopyThrows(const CopyThrows &) { throw 42; } + CopyThrows &operator=(const CopyThrows &) { throw 42; } +}; + +struct CopyCannotThrow { + static int alive; + CopyCannotThrow() { ++alive; } + CopyCannotThrow(const CopyCannotThrow &) noexcept { ++alive; } + CopyCannotThrow(CopyCannotThrow &&) noexcept { assert(false); } + CopyCannotThrow &operator=(const CopyCannotThrow &) noexcept = default; + CopyCannotThrow &operator=(CopyCannotThrow &&) noexcept { assert(false); return *this; } +}; + +int CopyCannotThrow::alive = 0; + +struct MoveThrows { + static int alive; + MoveThrows() { ++alive; } + MoveThrows(const MoveThrows &) { ++alive; } + MoveThrows(MoveThrows &&) { throw 42; } + MoveThrows &operator=(const MoveThrows &) { return *this; } + MoveThrows &operator=(MoveThrows &&) { throw 42; } + ~MoveThrows() { --alive; } +}; + +int MoveThrows::alive = 0; + struct MakeEmptyT { static int alive; MakeEmptyT() { ++alive; } |