diff options
| author | Eric Fiselier <eric@efcs.ca> | 2017-03-02 21:16:35 +0000 |
|---|---|---|
| committer | Eric Fiselier <eric@efcs.ca> | 2017-03-02 21:16:35 +0000 |
| commit | 7709213ecef1c9f78138e69fb47cad866cfc99b2 (patch) | |
| tree | 951b82027fec52dc9b24f2ebd998938bd81918cb /libcxx/test/std | |
| parent | f818c3300b911cb6d1b59f0308af38117a7a81f8 (diff) | |
| download | bcm5719-llvm-7709213ecef1c9f78138e69fb47cad866cfc99b2.tar.gz bcm5719-llvm-7709213ecef1c9f78138e69fb47cad866cfc99b2.zip | |
Fix test failures caused by new/delete calls getting optimized away
llvm-svn: 296813
Diffstat (limited to 'libcxx/test/std')
5 files changed, 13 insertions, 5 deletions
diff --git a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array_calls_unsized_delete_array.pass.cpp b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array_calls_unsized_delete_array.pass.cpp index ff55ec74e3c..3925f2f5c31 100644 --- a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array_calls_unsized_delete_array.pass.cpp +++ b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.array/sized_delete_array_calls_unsized_delete_array.pass.cpp @@ -46,9 +46,11 @@ void operator delete[](void* p, const std::nothrow_t&) TEST_NOEXCEPT // selected. struct A { ~A() {} }; +A *volatile x; + int main() { - A* x = new A[3]; + x = new A[3]; assert(0 == delete_called); assert(0 == delete_nothrow_called); diff --git a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_replace.pass.cpp b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_replace.pass.cpp index ad15b49483d..ea6c9367b90 100644 --- a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_replace.pass.cpp +++ b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/new_replace.pass.cpp @@ -43,9 +43,11 @@ struct A ~A() {A_constructed = false;} }; +A *volatile ap; + int main() { - A* ap = new A; + ap = new A; assert(ap); assert(A_constructed); assert(new_called); diff --git a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete11.pass.cpp b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete11.pass.cpp index 7369c362fce..57fb1eb88b6 100644 --- a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete11.pass.cpp +++ b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete11.pass.cpp @@ -44,9 +44,11 @@ void operator delete(void* p, std::size_t) TEST_NOEXCEPT std::free(p); } +int *volatile x; + int main() { - int *x = new int(42); + x = new int(42); assert(0 == unsized_delete_called); assert(0 == unsized_delete_nothrow_called); assert(0 == sized_delete_called); diff --git a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp index 6c91f5ceda8..b85b670fa2d 100644 --- a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp +++ b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete14.pass.cpp @@ -49,9 +49,11 @@ void operator delete(void* p, std::size_t) TEST_NOEXCEPT std::free(p); } +int *volatile x; + int main() { - int *x = new int(42); + x = new int(42); assert(0 == unsized_delete_called); assert(0 == unsized_delete_nothrow_called); assert(0 == sized_delete_called); diff --git a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete_fsizeddeallocation.sh.cpp b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete_fsizeddeallocation.sh.cpp index 1b6de2367e1..61fca5f125b 100644 --- a/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete_fsizeddeallocation.sh.cpp +++ b/libcxx/test/std/language.support/support.dynamic/new.delete/new.delete.single/sized_delete_fsizeddeallocation.sh.cpp @@ -17,7 +17,7 @@ // NOTE: Only clang-3.7 and GCC 5.1 and greater support -fsized-deallocation. // REQUIRES: fsized-deallocation -// RUN: %build -fsized-deallocation +// RUN: %build -fsized-deallocation -O3 // RUN: %run #if !defined(__cpp_sized_deallocation) |

