X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=test%2Funit%2Fmisc%2Fcxx11_atomic_func.cpp;h=20c948f0b2332b0ab9361bc8b7f5f2bd8d341c52;hb=6924946ceeaae28bc227fe7c9d8e939963bb9d69;hp=f7c348b5b6853cbd2afaf258996946866e1ad977;hpb=45055c6284d06cdea7febc702092a52c2cd262a8;p=libcds.git diff --git a/test/unit/misc/cxx11_atomic_func.cpp b/test/unit/misc/cxx11_atomic_func.cpp index f7c348b5..20c948f0 100644 --- a/test/unit/misc/cxx11_atomic_func.cpp +++ b/test/unit/misc/cxx11_atomic_func.cpp @@ -28,7 +28,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include +#include #include #ifndef CDS_USE_BOOST_ATOMIC @@ -416,14 +416,14 @@ namespace misc { EXPECT_EQ( *atomics::atomic_load_explicit( &a, oLoad ), 1 ); for ( integral_type i = 1; i < aSize; ++i ) { - integral_type * p = atomics::atomic_load_explicit( &a, oLoad ); + p = atomics::atomic_load_explicit( &a, oLoad ); EXPECT_EQ( *p, i ); EXPECT_EQ( atomics::atomic_fetch_add_explicit( &a, 1, order ), p ); EXPECT_EQ( *atomics::atomic_load_explicit( &a, oLoad ), i + 1 ); } for ( integral_type i = aSize; i > 1; --i ) { - integral_type * p = atomics::atomic_load_explicit( &a, oLoad ); + p = atomics::atomic_load_explicit( &a, oLoad ); EXPECT_EQ( *p, i ); EXPECT_EQ( atomics::atomic_fetch_sub_explicit( &a, 1, order ), p ); EXPECT_EQ( *atomics::atomic_load_explicit( &a, oLoad ), i - 1 ); @@ -464,14 +464,14 @@ namespace misc { EXPECT_EQ( *atomics::atomic_load( &a ), 1 ); for ( integral_type i = 1; i < aSize; ++i ) { - integral_type * p = atomics::atomic_load( &a ); + p = atomics::atomic_load( &a ); EXPECT_EQ( *p, i ); EXPECT_EQ( atomics::atomic_fetch_add( &a, 1 ), p ); EXPECT_EQ( *atomics::atomic_load( &a ), i + 1 ); } for ( integral_type i = aSize; i > 1; --i ) { - integral_type * p = atomics::atomic_load( &a ); + p = atomics::atomic_load( &a ); EXPECT_EQ( *p, i ); EXPECT_EQ( atomics::atomic_fetch_sub( &a, 1 ), p ); EXPECT_EQ( *atomics::atomic_load( &a ), i - 1 ); @@ -488,6 +488,8 @@ namespace misc { template void do_test_atomic_pointer_void_( Atomic& a, char * arr, char aSize, atomics::memory_order order ) { + CDS_UNUSED( aSize ); + atomics::memory_order oLoad = convert_to_load_order(order); atomics::memory_order oStore = convert_to_store_order(order); char * p; @@ -513,18 +515,6 @@ namespace misc { EXPECT_EQ( reinterpret_cast(atomics::atomic_exchange_explicit( &a, (void *) arr, order )), arr + 3 ); EXPECT_EQ( reinterpret_cast(atomics::atomic_load_explicit( &a, oLoad )), arr ); EXPECT_EQ( *reinterpret_cast(atomics::atomic_load_explicit( &a, oLoad )), 1 ); - - for ( char i = 1; i < aSize; ++i ) { - EXPECT_EQ( *reinterpret_cast(atomics::atomic_load_explicit( &a, oLoad )), i ); - atomics::atomic_fetch_add_explicit( &a, 1, order ); - EXPECT_EQ( *reinterpret_cast(atomics::atomic_load_explicit( &a, oLoad )), i + 1 ); - } - - for ( char i = aSize; i > 1; --i ) { - EXPECT_EQ( *reinterpret_cast(atomics::atomic_load_explicit( &a, oLoad )), i ); - atomics::atomic_fetch_sub_explicit( &a, 1, order ); - EXPECT_EQ( *reinterpret_cast(atomics::atomic_load_explicit( &a, oLoad )), i - 1 ); - } } template @@ -559,18 +549,6 @@ namespace misc { EXPECT_EQ( reinterpret_cast( atomics::atomic_load( &a )), arr ); EXPECT_EQ( *reinterpret_cast(atomics::atomic_load( &a )), 1 ); - for ( char i = 1; i < aSize; ++i ) { - EXPECT_EQ( *reinterpret_cast(atomics::atomic_load( &a )), i ); - atomics::atomic_fetch_add( &a, 1 ); - EXPECT_EQ( *reinterpret_cast(atomics::atomic_load( &a )), i + 1 ); - } - - for ( char i = aSize; i > 1; --i ) { - EXPECT_EQ( *reinterpret_cast(atomics::atomic_load( &a )), i ); - atomics::atomic_fetch_sub( &a, 1 ); - EXPECT_EQ( *reinterpret_cast(atomics::atomic_load( &a )), i - 1 ); - } - do_test_atomic_pointer_void_( a, arr, aSize, atomics::memory_order_relaxed ); do_test_atomic_pointer_void_( a, arr, aSize, atomics::memory_order_acquire ); do_test_atomic_pointer_void_( a, arr, aSize, atomics::memory_order_release ); @@ -706,8 +684,6 @@ namespace misc { test_atomic_integral_volatile(); } -#if !( CDS_COMPILER == CDS_COMPILER_CLANG && CDS_COMPILER_VERSION < 50000 ) - //clang error with atomic fetch_add/fetch_sub TEST_F( cxx11_atomic_func, atomic_pointer_void ) { do_test_atomic_pointer_void(); @@ -716,7 +692,6 @@ namespace misc { { do_test_atomic_pointer_void(); } -#endif TEST_F( cxx11_atomic_func, atomic_pointer_char ) {