X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=compiler.h;h=99972f30e2ba89726f663c78261f4e9203b6d026;hb=9b35d5dcf52a88861328f442ee0ef6812ec9b35b;hp=142b9a60fa98c011096a1fba025d962e63b07520;hpb=329045f0eb60fcfb432154979ec458b04df40630;p=urcu.git 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 */