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

Split Close
Expand all
Collapse all
          --- old/usr/src/cmd/mdb/common/modules/ii/ii.c
          +++ new/usr/src/cmd/mdb/common/modules/ii/ii.c
↓ open down ↓ 28 lines elided ↑ open up ↑
  29   29  #include <sys/nsctl/nsctl.h>
  30   30  #include <sys/unistat/spcs_s.h>
  31   31  #include <sys/unistat/spcs_s_k.h>
  32   32  
  33   33  
  34   34  #include <sys/nsctl/dsw.h>
  35   35  #include <sys/nsctl/dsw_dev.h>
  36   36  
  37   37  #include <sys/nsctl/nsvers.h>
  38   38  
  39      -#define offsetof(s, m)  ((size_t)(&((s *)0)->m))
       39 +#if defined(__GNUC__)
       40 +#define offsetof(s, m)  __builtin_offsetof(s, m)
       41 +#else
       42 +#define offsetof(s, m)  ((size_t)(&(((s *)0)->m)))
       43 +#endif
  40   44  
  41   45  
  42   46  const mdb_bitmask_t bi_flags_bits[] = {
  43   47          { "DSW_GOLDEN", DSW_GOLDEN, DSW_GOLDEN },
  44   48          { "DSW_COPYINGP", DSW_COPYINGP, DSW_COPYINGP },
  45   49          { "DSW_COPYINGM", DSW_COPYINGM, DSW_COPYINGM },
  46   50          { "DSW_COPYINGS", DSW_COPYINGS, DSW_COPYINGS },
  47   51          { "DSW_COPYINGX", DSW_COPYINGX, DSW_COPYINGX },
  48   52          { "DSW_BMPOFFLINE", DSW_BMPOFFLINE, DSW_BMPOFFLINE },
  49   53          { "DSW_SHDOFFLINE", DSW_SHDOFFLINE, DSW_SHDOFFLINE },
↓ open down ↓ 378 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX