summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default')
-rw-r--r--libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct.pass.cpp6
-rw-r--r--libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct_n.pass.cpp8
2 files changed, 5 insertions, 9 deletions
diff --git a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct.pass.cpp b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct.pass.cpp
index cd57769df2e..533d516707e 100644
--- a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct.pass.cpp
+++ b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct.pass.cpp
@@ -47,7 +47,7 @@ struct ThrowsCounted {
++count;
}
ThrowsCounted(ThrowsCounted const&) { assert(false); }
- ~ThrowsCounted() { --count; }
+ ~ThrowsCounted() { assert(count > 0); --count; }
friend void operator&(ThrowsCounted) = delete;
};
int ThrowsCounted::count = 0;
@@ -67,10 +67,8 @@ void test_ctor_throws()
std::uninitialized_default_construct(It(p), It(p+N));
assert(false);
} catch (...) {}
- assert(ThrowsCounted::count == 3);
- assert(ThrowsCounted::constructed == 4); // forth construction throws
- std::destroy(p, p+3);
assert(ThrowsCounted::count == 0);
+ assert(ThrowsCounted::constructed == 4); // forth construction throws
#endif
}
diff --git a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct_n.pass.cpp b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct_n.pass.cpp
index bfb74b99ecd..f22a74f1f83 100644
--- a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct_n.pass.cpp
+++ b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.construct.default/uninitialized_default_construct_n.pass.cpp
@@ -27,7 +27,7 @@ struct Counted {
static void reset() { count = constructed = 0; }
explicit Counted() { ++count; ++constructed; }
Counted(Counted const&) { assert(false); }
- ~Counted() { --count; }
+ ~Counted() { assert(count > 0); --count; }
friend void operator&(Counted) = delete;
};
int Counted::count = 0;
@@ -47,7 +47,7 @@ struct ThrowsCounted {
++count;
}
ThrowsCounted(ThrowsCounted const&) { assert(false); }
- ~ThrowsCounted() { --count; }
+ ~ThrowsCounted() { assert(count > 0); --count; }
friend void operator&(ThrowsCounted) = delete;
};
int ThrowsCounted::count = 0;
@@ -66,10 +66,8 @@ void test_ctor_throws()
std::uninitialized_default_construct_n(It(p), N);
assert(false);
} catch (...) {}
- assert(ThrowsCounted::count == 3);
- assert(ThrowsCounted::constructed == 4); // forth construction throws
- std::destroy(p, p+3);
assert(ThrowsCounted::count == 0);
+ assert(ThrowsCounted::constructed == 4); // forth construction throws
#endif
}
OpenPOWER on IntegriCloud