summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2017-06-07 09:06:05 +0000
committerEric Fiselier <eric@efcs.ca>2017-06-07 09:06:05 +0000
commitbc8383e76c61be05e1a63eb0a811d4797035cda1 (patch)
tree48f00ef3d5c8bbfb11bec37c5c438a02ea64650a /libcxx/test/std/utilities/variant/variant.variant/variant.assign/copy.pass.cpp
parent9afd9d9254e634b3c408c886320c820b8b101b81 (diff)
downloadbcm5719-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.cpp59
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; }
OpenPOWER on IntegriCloud