diff options
author | Marshall Clow <mclow.lists@gmail.com> | 2015-05-19 15:01:48 +0000 |
---|---|---|
committer | Marshall Clow <mclow.lists@gmail.com> | 2015-05-19 15:01:48 +0000 |
commit | a00932bddba1c4d1a9373f0367bd0cdf7896b0f7 (patch) | |
tree | fcda0a9459c8f6a51f1a0100ddc16d614aaaa107 /libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.fill | |
parent | 877f3cbe848f0b8dfbfea176925456cc9302bd89 (diff) | |
download | bcm5719-llvm-a00932bddba1c4d1a9373f0367bd0cdf7896b0f7.tar.gz bcm5719-llvm-a00932bddba1c4d1a9373f0367bd0cdf7896b0f7.zip |
Implement LWG2433: uninitialized_copy()/etc. should tolerate overloaded operator&
llvm-svn: 237699
Diffstat (limited to 'libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.fill')
-rw-r--r-- | libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.fill/uninitialized_fill.pass.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.fill/uninitialized_fill.pass.cpp b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.fill/uninitialized_fill.pass.cpp index c34fdc7a14e..47cabdfa478 100644 --- a/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.fill/uninitialized_fill.pass.cpp +++ b/libcxx/test/std/utilities/memory/specialized.algorithms/uninitialized.fill/uninitialized_fill.pass.cpp @@ -28,8 +28,19 @@ struct B int B::count_ = 0; +struct Nasty +{ + Nasty() : i_ ( counter_++ ) {} + Nasty * operator &() const { return NULL; } + int i_; + static int counter_; +}; + +int Nasty::counter_ = 0; + int main() { + { const int N = 5; char pool[sizeof(B)*N] = {0}; B* bp = (B*)pool; @@ -47,4 +58,15 @@ int main() std::uninitialized_fill(bp, bp+2, B()); for (int i = 0; i < 2; ++i) assert(bp[i].data_ == 1); + } + { + const int N = 5; + char pool[N*sizeof(Nasty)] = {0}; + Nasty* bp = (Nasty*)pool; + + Nasty::counter_ = 23; + std::uninitialized_fill(bp, bp+N, Nasty()); + for (int i = 0; i < N; ++i) + assert(bp[i].i_ == 23); + } } |