From a7c1f9727a099da0d4722d4cf81056acd205158b Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Wed, 5 Dec 2012 00:00:42 -0500 Subject: use __builtin_offsetof to implement offsetof when possible apparently recent gcc versions have intentionally broken the traditional definition by treating it as a non-constant expression. the traditional definition may also be problematic for c++ programs. --- include/stddef.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include/stddef.h') diff --git a/include/stddef.h b/include/stddef.h index dbf5a4ae..a5bb9ecc 100644 --- a/include/stddef.h +++ b/include/stddef.h @@ -14,6 +14,10 @@ #include +#if __GNUC__ > 3 +#define offsetof(type, member) __builtin_offsetof(type, member) +#else #define offsetof(type, member) ((size_t)( (char *)&(((type *)0)->member) - (char *)0 )) +#endif #endif -- cgit v1.2.1