1  /* The bit-field below would have a problem if __INT_MAX__ is too
       2     small.  */
       3  #if __INT_MAX__ < 2147483647
       4  int a;
       5  #else
       6  double g ();
       7  typedef union {
       8    struct {
       9      unsigned s:1, e:8, f:23;
      10    } u;
      11    float f;
      12  } s;
      13  
      14  f(x, n)
      15       float x;
      16  {
      17    ((s *)&x)->u.e -= n;
      18    x = g((double)x, -n);
      19  }
      20  #endif