summaryrefslogtreecommitdiffstats
path: root/libcxx/test/std/language.support/support.dynamic
diff options
context:
space:
mode:
authorEric Fiselier <eric@efcs.ca>2016-06-22 00:32:28 +0000
committerEric Fiselier <eric@efcs.ca>2016-06-22 00:32:28 +0000
commit0df02969740fba8f1d5b472245e1853377cd0286 (patch)
tree7275fa18b0f8f352951fa2cbbd655394519be594 /libcxx/test/std/language.support/support.dynamic
parent97e0ba02fdcd5862620179f6d651d47605b301c4 (diff)
downloadbcm5719-llvm-0df02969740fba8f1d5b472245e1853377cd0286.tar.gz
bcm5719-llvm-0df02969740fba8f1d5b472245e1853377cd0286.zip
Allow placement new array test to consume extra bytes as specified by the standard.
llvm-svn: 273342
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