1  static int 
       2  test(int x)
       3  {
       4    union 
       5      {
       6        int i;
       7        double d;
       8    } a;
       9    a.d = 0;
      10    a.i = 1;
      11    return x >> a.i;
      12  }
      13  
      14  int main(void)
      15  {
      16    if (test (5) != 2)
      17      abort ();
      18    exit (0);
      19  }