1  
       2  #define S 31
       3  #define A 17
       4  
       5  foo (a)
       6       unsigned a;
       7  {
       8    return (a >> S) & ((1 << A) - 1);
       9  }
      10  
      11  main ()
      12  {
      13    printf ("%d%d\n", foo (-1), foo (0));
      14  }