[UBsan] Fixed signed integer overflow
[libcds.git] / test / include / cds_test / fc_hevy_value.h
index b17fd2a1ab1bb5d0d22109ee0614907762b9b4b4..4159bd7f45bcb8dd980adfc61fda21548b59df53 100644 (file)
@@ -53,8 +53,9 @@ namespace fc_test {
             , nNo(other.nNo)
             , nWriterNo(other.nWriterNo)
         {
+            // This is an imitation of heavy copy ctor
             for(size_t i = 0; i < buffer_size; ++i)
-                pop_buff[i] =  static_cast<int>(std::sqrt( static_cast<int>( pop_buff[i] * rand())));
+                pop_buff[i] = static_cast<int>( std::sqrt( std::abs( static_cast<double>( pop_buff[i] ) * rand())));
         }
 
         void set_array(size_t new_size)