Fixed CLang 3.8 + libc++ issues
[libcds.git] / test / unit / misc / cxx11_atomic_func.cpp
index c93e958b4e04ccb35da52a6e2003370a3e64e97f..92c5c355563e50c97de3c7544480940f2c475308 100644 (file)
@@ -188,7 +188,7 @@ namespace misc {
 
             EXPECT_TRUE( atomics::atomic_is_lock_free( &a ) );
             atomics::atomic_store_explicit( &a, (integral_type) 0, oStore );
-            EXPECT_EQ( a, );
+            EXPECT_EQ( a, integral_type( 0 ));
             EXPECT_EQ( atomics::atomic_load_explicit( &a, oLoad ), (integral_type) 0 );
 
             for ( size_t nByte = 0; nByte < sizeof(Integral); ++nByte ) {
@@ -275,7 +275,7 @@ namespace misc {
 
                 EXPECT_EQ( atomics::atomic_fetch_and_explicit( &a, (integral_type) ~mask, order ), prev );
                 prev = atomics::atomic_load_explicit( &a, oLoad );
-                EXPECT_EQ( ( prev & mask), 0);
+                EXPECT_EQ( ( prev & mask), integral_type( 0 ));
 
                 EXPECT_EQ( atomics::atomic_fetch_xor_explicit( &a, mask, order ), prev );
                 prev = atomics::atomic_load_explicit( &a, oLoad );
@@ -706,6 +706,8 @@ namespace misc {
         test_atomic_integral_volatile<unsigned long long>();
     }
 
+#if !( CDS_COMPILER == CDS_COMPILER_CLANG && defined(_LIBCPP_VERSION) && CDS_COMPILER_VERSION < 30900 )
+    //clang error (libc++) with atomic<void> fetch_add/fetch_sub
     TEST_F( cxx11_atomic_func, atomic_pointer_void )
     {
         do_test_atomic_pointer_void<false>();
@@ -714,6 +716,7 @@ namespace misc {
     {
         do_test_atomic_pointer_void<true>();
     }
+#endif
 
     TEST_F( cxx11_atomic_func, atomic_pointer_char )
     {