Fix uatomic sign cast
[urcu.git] / urcu / uatomic / sparc64.h
index d9ecada5aa56c3891c2f34624a60247f02c5168e..62945668fa6612734ca26bbffb965951bda394c4 100644 (file)
@@ -66,9 +66,10 @@ unsigned long _uatomic_cmpxchg(void *addr, unsigned long old,
 }
 
 
-#define uatomic_cmpxchg(addr, old, _new)                                   \
-       ((__typeof__(*(addr))) _uatomic_cmpxchg((addr), (unsigned long)(old),\
-                                               (unsigned long)(_new),      \
+#define uatomic_cmpxchg(addr, old, _new)                                      \
+       ((__typeof__(*(addr))) _uatomic_cmpxchg((addr),                        \
+                                               caa_cast_long_keep_sign(old),  \
+                                               caa_cast_long_keep_sign(_new), \
                                                sizeof(*(addr))))
 
 #ifdef __cplusplus 
This page took 0.023174 seconds and 4 git commands to generate.