X-Git-Url: http://git.liburcu.org/?p=userspace-rcu.git;a=blobdiff_plain;f=urcu%2Fstatic%2Furcu-pointer.h;h=48dc5bf506d86b06ddb1b5b4cf72066508634493;hp=906caa009c708c13cc2f9a6b0c1e989416e3aed7;hb=bdffa73aa208ad5f1e5b3a3cb6cbf86ac6996559;hpb=665eb3efcc4557deddb70ecce68ec3b918ae9c5e diff --git a/urcu/static/urcu-pointer.h b/urcu/static/urcu-pointer.h index 906caa0..48dc5bf 100644 --- a/urcu/static/urcu-pointer.h +++ b/urcu/static/urcu-pointer.h @@ -62,7 +62,7 @@ extern "C" { */ #define _rcu_dereference(p) ({ \ - typeof(p) _________p1 = CMM_LOAD_SHARED(p); \ + __typeof__(p) _________p1 = CMM_LOAD_SHARED(p); \ cmm_smp_read_barrier_depends(); \ (_________p1); \ }) @@ -77,8 +77,8 @@ extern "C" { #define _rcu_cmpxchg_pointer(p, old, _new) \ ({ \ - typeof(*p) _________pold = (old); \ - typeof(*p) _________pnew = (_new); \ + __typeof__(*p) _________pold = (old); \ + __typeof__(*p) _________pnew = (_new); \ if (!__builtin_constant_p(_new) || \ ((_new) != NULL)) \ cmm_wmb(); \ @@ -93,7 +93,7 @@ extern "C" { #define _rcu_xchg_pointer(p, v) \ ({ \ - typeof(*p) _________pv = (v); \ + __typeof__(*p) _________pv = (v); \ if (!__builtin_constant_p(v) || \ ((v) != NULL)) \ cmm_wmb(); \ @@ -103,7 +103,7 @@ extern "C" { #define _rcu_set_pointer(p, v) \ do { \ - typeof(*p) _________pv = (v); \ + __typeof__(*p) _________pv = (v); \ if (!__builtin_constant_p(v) || \ ((v) != NULL)) \ cmm_wmb(); \