Print this page
3373 gcc >= 4.5 concerns about offsetof()
@@ -41,12 +41,10 @@
*/
#ifndef _ISO_STDDEF_ISO_H
#define _ISO_STDDEF_ISO_H
-#pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.5 */
-
#include <sys/isa_defs.h>
#ifdef __cplusplus
extern "C" {
#endif
@@ -86,11 +84,15 @@
#endif /* end of namespace std */
#if __cplusplus >= 199711L
#define offsetof(s, m) (std::size_t)(&(((s *)0)->m))
#else
-#define offsetof(s, m) (size_t)(&(((s *)0)->m))
+#if defined(__GNUC__)
+#define offsetof(s, m) __builtin_offsetof(s, m)
+#else
+#define offsetof(s, m) ((size_t)(&(((s *)0)->m)))
+#endif
#endif
#ifdef __cplusplus
}
#endif