Fixed UBsan warning "call to function through pointer to incorrect function type"
[libcds.git] / cds / urcu / general_instant.h
index 91896a3efc9b5049fcc9b7ed48785bbc1b80d3be..2623024e045b65e87d1d23eb3844c2cb12060bec 100644 (file)
@@ -90,9 +90,9 @@ namespace cds { namespace urcu {
             and then evaluates disposing expression <tt>pFunc( p )</tt>
         */
         template <typename T>
-        static void retire_ptr( T * p, void (* pFunc)(T *))
+        static void retire_ptr( T* p, free_retired_ptr_func pFunc )
         {
-            retired_ptr rp( reinterpret_cast<void *>( p ), reinterpret_cast<free_retired_ptr_func>( pFunc ));
+            retired_ptr rp( p, pFunc );
             retire_ptr( rp );
         }
 
@@ -102,7 +102,7 @@ namespace cds { namespace urcu {
             and then evaluates disposing expression <tt>Disposer()( p )</tt>
         */
         template <typename Disposer, typename T>
-        static void retire_ptr( T * p )
+        static void retire_ptr( T* p )
         {
             retire_ptr( p, cds::details::static_functor<Disposer, T>::call );
         }