summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/language.support/support.dynamic
diff options
context:
space:
mode:
Diffstat (limited to 'libcxx/test/std/language.support/support.dynamic')
-rw-r--r--libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.placement/new_array.pass.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.placement/new_array.pass.cpp b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.placement/new_array.pass.cpp
index 1ab52ae4c8d..462d1973c50 100644
--- a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.placement/new_array.pass.cpp
+++ b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.placement/new_array.pass.cpp
@@ -22,9 +22,13 @@ struct A
int main()
{
- char buf[3*sizeof(A)];
+ const std::size_t Size = 3;
+ // placement new might require additional space.
+ const std::size_t ExtraSize = 64;
+ char buf[Size*sizeof(A) + ExtraSize];
- A* ap = new(buf) A[3];
- assert((char*)ap == buf);
- assert(A_constructed == 3);
+ A* ap = new(buf) A[Size];
+ assert((char*)ap >= buf);
+ assert((char*)ap < (buf + ExtraSize));
+ assert(A_constructed == Size);
}
OpenPOWER on IntegriCloud