diff --git a/ref_gl/gl_local.h b/ref_gl/gl_local.h index d3f49836..a50f7f0c 100644 --- a/ref_gl/gl_local.h +++ b/ref_gl/gl_local.h @@ -36,8 +36,12 @@ GNU General Public License for more details. #include "wadfile.h" #ifndef offsetof -#define offsetof(s,m) (size_t)&(((s *)0)->m) -#endif // offsetof +#ifdef __GNUC__ +#define offsetof(s,m) __builtin_offsetof(s,m) +#else +#define offsetof(s,m) (size_t)&(((s *)0)->m) +#endif +#endif #define ASSERT(x) if(!( x )) gEngfuncs.Host_Error( "assert failed at %s:%i\n", __FILE__, __LINE__ ) #define Assert(x) if(!( x )) gEngfuncs.Host_Error( "assert failed at %s:%i\n", __FILE__, __LINE__ ) diff --git a/ref_soft/r_local.h b/ref_soft/r_local.h index b75b072a..8a893bbb 100644 --- a/ref_soft/r_local.h +++ b/ref_soft/r_local.h @@ -36,10 +36,6 @@ typedef struct mip_s mip_t; typedef int fixed8_t; typedef int fixed16_t; -#ifndef offsetof -#define offsetof(s,m) (size_t)&(((s *)0)->m) -#endif // offsetof - #define ASSERT(x) if(!( x )) gEngfuncs.Host_Error( "assert failed at %s:%i\n", __FILE__, __LINE__ ) #define Assert(x) if(!( x )) gEngfuncs.Host_Error( "assert failed at %s:%i\n", __FILE__, __LINE__ )