From d27745e4fbaa038ab5cfd7688a184b1fac04bd14 Mon Sep 17 00:00:00 2001 From: Howard Hinnant Date: Wed, 16 Jan 2013 17:56:06 +0000 Subject: [PATCH] Make a few tests optimization-proof. These tests were failing under -O3 because the optimizer was eliminating the call to new. llvm-svn: 172631 --- .../new.delete/new.delete.array/new_array.pass.cpp | 2 +- .../new.delete/new.delete.array/new_array_nothrow.pass.cpp | 2 +- .../new.delete.array/new_array_nothrow_replace.pass.cpp | 2 +- .../new.delete/new.delete.array/new_array_replace.pass.cpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libcxx/test/language.support/support.dynamic/new.delete/new.delete.array/new_array.pass.cpp b/libcxx/test/language.support/support.dynamic/new.delete/new.delete.array/new_array.pass.cpp index b7cfdbeaf76f..63f847f4d04e 100644 --- a/libcxx/test/language.support/support.dynamic/new.delete/new.delete.array/new_array.pass.cpp +++ b/libcxx/test/language.support/support.dynamic/new.delete/new.delete.array/new_array.pass.cpp @@ -35,7 +35,7 @@ int main() std::set_new_handler(new_handler); try { - void* vp = operator new[] (std::numeric_limits::max()); + void*volatile vp = operator new[] (std::numeric_limits::max()); assert(false); } catch (std::bad_alloc&) diff --git a/libcxx/test/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow.pass.cpp b/libcxx/test/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow.pass.cpp index 6537afe8b39b..60bc7c40928b 100644 --- a/libcxx/test/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow.pass.cpp +++ b/libcxx/test/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow.pass.cpp @@ -35,7 +35,7 @@ int main() std::set_new_handler(new_handler); try { - void* vp = operator new [] (std::numeric_limits::max(), std::nothrow); + void*volatile vp = operator new [] (std::numeric_limits::max(), std::nothrow); assert(new_handler_called == 1); assert(vp == 0); } diff --git a/libcxx/test/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow_replace.pass.cpp b/libcxx/test/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow_replace.pass.cpp index 3d836969eecd..9bf6e8a8cebf 100644 --- a/libcxx/test/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow_replace.pass.cpp +++ b/libcxx/test/language.support/support.dynamic/new.delete/new.delete.array/new_array_nothrow_replace.pass.cpp @@ -29,7 +29,7 @@ void operator delete(void* p) throw() std::free(p); } -int A_constructed = 0; +volatile int A_constructed = 0; struct A { diff --git a/libcxx/test/language.support/support.dynamic/new.delete/new.delete.array/new_array_replace.pass.cpp b/libcxx/test/language.support/support.dynamic/new.delete/new.delete.array/new_array_replace.pass.cpp index c01945e98eec..959bc450fa4f 100644 --- a/libcxx/test/language.support/support.dynamic/new.delete/new.delete.array/new_array_replace.pass.cpp +++ b/libcxx/test/language.support/support.dynamic/new.delete/new.delete.array/new_array_replace.pass.cpp @@ -15,7 +15,7 @@ #include #include -int new_called = 0; +volatile int new_called = 0; void* operator new(std::size_t s) throw(std::bad_alloc) { -- GitLab