[UBsan] Fixed signed integer overflow
[libcds.git] / test / include / cds_test / fc_hevy_value.h
index 9208a1164d7a7b4c3e536fb25e8c794b7ad566a9..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(other.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)