X-Git-Url: http://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=compiler.h;h=99972f30e2ba89726f663c78261f4e9203b6d026;hp=142b9a60fa98c011096a1fba025d962e63b07520;hb=ba59a0c7b244a0939a2298fc76a9002436ef9674;hpb=329045f0eb60fcfb432154979ec458b04df40630 diff --git a/compiler.h b/compiler.h index 142b9a6..99972f3 100644 --- a/compiler.h +++ b/compiler.h @@ -37,4 +37,14 @@ */ #define ACCESS_ONCE(x) (*(volatile typeof(x) *)&x) +#if (__GNUC__ == 4) +#define __compiler_offsetof(a, b) __builtin_offsetof(a, b) +#endif + +#ifdef __compiler_offsetof +#define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER) +#else +#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) +#endif + #endif /* _COMPILER_H */