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

Split Close
Expand all
Collapse all
          --- old/usr/src/stand/lib/sa/stddef.h
          +++ new/usr/src/stand/lib/sa/stddef.h
↓ open down ↓ 18 lines elided ↑ open up ↑
  19   19   * CDDL HEADER END
  20   20   */
  21   21  /*
  22   22   * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  23   23   * Use is subject to license terms.
  24   24   */
  25   25  
  26   26  #ifndef _SA_STDDEF_H
  27   27  #define _SA_STDDEF_H
  28   28  
  29      -#pragma ident   "%Z%%M% %I%     %E% SMI"
  30      -
  31   29  /*
  32   30   * Exported interfaces for standalone's subset of libc's <stddef.h>.
  33   31   * All standalone code *must* use this header rather than libc's.
  34   32   */
  35   33  
  36   34  #ifdef  __cplusplus
  37   35  extern "C" {
  38   36  #endif
  39   37  
  40   38  #ifndef NULL
  41   39  #define NULL    0
  42   40  #endif
  43   41  
  44   42  #ifndef offsetof
  45      -#define offsetof(s, m)  (size_t)(&(((s *)0)->m))
       43 +#if defined(__GNUC__)
       44 +#define offsetof(s, m)  __builtin_offsetof(s, m)
       45 +#else
       46 +#define offsetof(s, m)  ((size_t)(&(((s *)0)->m)))
       47 +#endif
  46   48  #endif
  47   49  
  48   50  #ifdef  __cplusplus
  49   51  }
  50   52  #endif
  51   53  
  52   54  #endif /* _SA_STDDEF_H */
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX