summaryrefslogtreecommitdiffstats
path: root/libcxx/test/utilities/memory/specialized.algorithms
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/utilities/memory/specialized.algorithms')
-rw-r--r--libcxx/test/utilities/memory/specialized.algorithms/nothing_to_do.pass.cpp1
-rw-r--r--libcxx/test/utilities/memory/specialized.algorithms/specialized.addressof/addressof.pass.cpp1
-rw-r--r--libcxx/test/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy.pass.cpp1
-rw-r--r--libcxx/test/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy_n.pass.cpp1
-rw-r--r--libcxx/test/utilities/memory/specialized.algorithms/uninitialized.fill.n/uninitialized_fill_n.pass.cpp1
-rw-r--r--libcxx/test/utilities/memory/specialized.algorithms/uninitialized.fill/uninitialized_fill.pass.cpp1
6 files changed, 6 insertions, 0 deletions
diff --git a/libcxx/test/utilities/memory/specialized.algorithms/nothing_to_do.pass.cpp b/libcxx/test/utilities/memory/specialized.algorithms/nothing_to_do.pass.cpp
new file mode 100644
index 00000000000..92348261209
--- /dev/null
+++ b/libcxx/test/utilities/memory/specialized.algorithms/nothing_to_do.pass.cpp
@@ -0,0 +1 @@
+//===----------------------------------------------------------------------===// // // ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// int main() { } \ No newline at end of file
diff --git a/libcxx/test/utilities/memory/specialized.algorithms/specialized.addressof/addressof.pass.cpp b/libcxx/test/utilities/memory/specialized.algorithms/specialized.addressof/addressof.pass.cpp
new file mode 100644
index 00000000000..3eb092820e9
--- /dev/null
+++ b/libcxx/test/utilities/memory/specialized.algorithms/specialized.addressof/addressof.pass.cpp
@@ -0,0 +1 @@
+//===----------------------------------------------------------------------===// // // ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <memory> // template <ObjectType T> T* addressof(T& r); #include <memory> #include <cassert> struct A { void operator&() const {} }; int main() { int i; double d; assert(std::addressof(i) == &i); assert(std::addressof(d) == &d); A* tp = new A; const A* ctp = tp; assert(std::addressof(*tp) == tp); assert(std::addressof(*ctp) == tp); delete tp; } \ No newline at end of file
diff --git a/libcxx/test/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy.pass.cpp b/libcxx/test/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy.pass.cpp
new file mode 100644
index 00000000000..dd94c51e71d
--- /dev/null
+++ b/libcxx/test/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy.pass.cpp
@@ -0,0 +1 @@
+//===----------------------------------------------------------------------===// // // ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <memory> // template <class InputIterator, class ForwardIterator> // ForwardIterator // uninitialized_copy(InputIterator first, InputIterator last, // ForwardIterator result); #include <memory> #include <cassert> struct B { static int count_; int data_; explicit B() : data_(1) {} B(const B& b) {if (++count_ == 3) throw 1; data_ = b.data_;} ~B() {data_ = 0;} }; int B::count_ = 0; int main() { const int N = 5; char pool[sizeof(B)*N] = {0}; B* bp = (B*)pool; B b[N]; try { std::uninitialized_copy(b, b+N, bp); assert(false); } catch (...) { for (int i = 0; i < N; ++i) assert(bp[i].data_ == 0); } B::count_ = 0; std::uninitialized_copy(b, b+2, bp); for (int i = 0; i < 2; ++i) assert(bp[i].data_ == 1); } \ No newline at end of file
diff --git a/libcxx/test/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy_n.pass.cpp b/libcxx/test/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy_n.pass.cpp
new file mode 100644
index 00000000000..0bc3e25061f
--- /dev/null
+++ b/libcxx/test/utilities/memory/specialized.algorithms/uninitialized.copy/uninitialized_copy_n.pass.cpp
@@ -0,0 +1 @@
+//===----------------------------------------------------------------------===// // // ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <memory> // template <class InputIterator, class Size, class ForwardIterator> // ForwardIterator // uninitialized_copy_n(InputIterator first, Size n, // ForwardIterator result); #include <memory> #include <cassert> struct B { static int count_; int data_; explicit B() : data_(1) {} B(const B& b) {if (++count_ == 3) throw 1; data_ = b.data_;} ~B() {data_ = 0;} }; int B::count_ = 0; int main() { const int N = 5; char pool[sizeof(B)*N] = {0}; B* bp = (B*)pool; B b[N]; try { std::uninitialized_copy_n(b, 5, bp); assert(false); } catch (...) { for (int i = 0; i < N; ++i) assert(bp[i].data_ == 0); } B::count_ = 0; std::uninitialized_copy_n(b, 2, bp); for (int i = 0; i < 2; ++i) assert(bp[i].data_ == 1); } \ No newline at end of file
diff --git a/libcxx/test/utilities/memory/specialized.algorithms/uninitialized.fill.n/uninitialized_fill_n.pass.cpp b/libcxx/test/utilities/memory/specialized.algorithms/uninitialized.fill.n/uninitialized_fill_n.pass.cpp
new file mode 100644
index 00000000000..03578593b07
--- /dev/null
+++ b/libcxx/test/utilities/memory/specialized.algorithms/uninitialized.fill.n/uninitialized_fill_n.pass.cpp
@@ -0,0 +1 @@
+//===----------------------------------------------------------------------===// // // ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <memory> // template <class ForwardIterator, class Size, class T> // void // uninitialized_fill_n(ForwardIterator first, Size n, const T& x); #include <memory> #include <cassert> struct B { static int count_; int data_; explicit B() : data_(1) {} B(const B& b) {if (++count_ == 3) throw 1; data_ = b.data_;} ~B() {data_ = 0;} }; int B::count_ = 0; int main() { const int N = 5; char pool[sizeof(B)*N] = {0}; B* bp = (B*)pool; try { std::uninitialized_fill_n(bp, 5, B()); assert(false); } catch (...) { for (int i = 0; i < N; ++i) assert(bp[i].data_ == 0); } B::count_ = 0; std::uninitialized_fill_n(bp, 2, B()); for (int i = 0; i < 2; ++i) assert(bp[i].data_ == 1); } \ No newline at end of file
diff --git a/libcxx/test/utilities/memory/specialized.algorithms/uninitialized.fill/uninitialized_fill.pass.cpp b/libcxx/test/utilities/memory/specialized.algorithms/uninitialized.fill/uninitialized_fill.pass.cpp
new file mode 100644
index 00000000000..843eece33e4
--- /dev/null
+++ b/libcxx/test/utilities/memory/specialized.algorithms/uninitialized.fill/uninitialized_fill.pass.cpp
@@ -0,0 +1 @@
+//===----------------------------------------------------------------------===// // // ΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚΚThe LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // <memory> // template <class ForwardIterator, class T> // void // uninitialized_fill(ForwardIterator first, ForwardIterator last, // const T& x); #include <memory> #include <cassert> struct B { static int count_; int data_; explicit B() : data_(1) {} B(const B& b) {if (++count_ == 3) throw 1; data_ = b.data_;} ~B() {data_ = 0;} }; int B::count_ = 0; int main() { const int N = 5; char pool[sizeof(B)*N] = {0}; B* bp = (B*)pool; try { std::uninitialized_fill(bp, bp+N, B()); assert(false); } catch (...) { for (int i = 0; i < N; ++i) assert(bp[i].data_ == 0); } B::count_ = 0; std::uninitialized_fill(bp, bp+2, B()); for (int i = 0; i < 2; ++i) assert(bp[i].data_ == 1); } \ No newline at end of file
OpenPOWER on IntegriCloud