From: Howard Hinnant Date: Wed, 16 Jan 2013 17:56:06 +0000 (+0000) Subject: Make a few tests optimization-proof. These tests were failing under -O3 because... X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d27745e4fbaa038ab5cfd7688a184b1fac04bd14;p=platform%2Fupstream%2Fllvm.git Make a few tests optimization-proof. These tests were failing under -O3 because the optimizer was eliminating the call to new. llvm-svn: 172631 --- 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 b7cfdbe..63f847f 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 6537afe..60bc7c40 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 3d83696..9bf6e8a 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 c01945e..959bc45 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) {