diff options
author | Eric Fiselier <eric@efcs.ca> | 2016-06-22 00:32:28 +0000 |
---|---|---|
committer | Eric Fiselier <eric@efcs.ca> | 2016-06-22 00:32:28 +0000 |
commit | 0df02969740fba8f1d5b472245e1853377cd0286 (patch) | |
tree | 7275fa18b0f8f352951fa2cbbd655394519be594 /libcxx/test/std/language.support/support.dynamic | |
parent | 97e0ba02fdcd5862620179f6d651d47605b301c4 (diff) | |
download | bcm5719-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.cpp | 12 |
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); } |