- typeof(*p) _________pold = (old); \
- typeof(*p) _________pnew = (_new); \
- typeof(*p) _________p1 = \
- rcu_cmpxchg_pointer_sym((void **)(p), _________pold, \
- _________pnew); \
+ typeof(*(p)) _________pold = (old); \
+ typeof(*(p)) _________pnew = (_new); \
+ typeof(*(p)) _________p1 = URCU_FORCE_CAST(typeof(*(p)), \
+ rcu_cmpxchg_pointer_sym(URCU_FORCE_CAST(void **, p),\
+ _________pold, \
+ _________pnew)); \