X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=urcu%2Fcompiler.h;fp=urcu%2Fcompiler.h;h=92867865865f19e45029e0d65c1ee5944c404420;hb=ecf2edf639926ad2a7842ebe1e6c456cc106e4c0;hp=f977b95fdc60f73b6ef6c9ab2b96c4c30a884de2;hpb=073b42da0335223bc1b83105e4b169181f792097;p=urcu.git diff --git a/urcu/compiler.h b/urcu/compiler.h index f977b95..9286786 100644 --- a/urcu/compiler.h +++ b/urcu/compiler.h @@ -85,4 +85,9 @@ #define URCU_FORCE_CAST(type, arg) ((type) (arg)) #endif +#define caa_is_signed_type(type) (((type) (-1)) < 0) + +#define caa_cast_long_keep_sign(v) \ + (caa_is_signed_type(__typeof__(v)) ? (long) (v) : (unsigned long) (v)) + #endif /* _URCU_COMPILER_H */