Print this page
3373 gcc >= 4.5 concerns about offsetof()

@@ -34,11 +34,15 @@
 #include <sys/ib/clients/of/sol_ofs/sol_ofs_common.h>
 #include <sys/ib/clients/of/rdma/rdma_cm.h>
 #include <sys/ib/clients/of/sol_ofs/sol_ib_cma.h> /* Transport Specific */
 
 #if !defined(offsetof)
-#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
 
 #define IS_UDP_CMID(idp)        ((idp)->ps == RDMA_PS_UDP || \
         (idp)->ps == RDMA_PS_IPOIB)
 #define IS_VALID_SOCKADDR(sockaddrp) \