diff --git a/src/include/stddef.h b/src/include/stddef.h index cfa9972dbdb58a23bf828d0efec8af03d1ea217e..7206ab59f3c070de5b5b6db2e433a5b892342caa 100644 --- a/src/include/stddef.h +++ b/src/include/stddef.h @@ -15,7 +15,11 @@ extern "C" { #endif #endif +#if ((defined(__GNUC__) && (__GNUC__ >= 4)) || defined(__clang__)) +#define offsetof(TYPE, MEMBER) __builtin_offsetof(TYPE, MEMBER) +#else #define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER) +#endif #define container_of(ptr, type, member) ({ \ const typeof( ((type *)0)->member ) *__mptr = (ptr); \