1foo (a)
2{
3  return (a & (1 << 31)) != 0;
4}
5
6main ()
7{
8  if (foo (0))
9    puts ("foo");
10  else
11    puts ("bar");
12  if (foo (~0))
13    puts ("foo");
14  else
15    puts ("bar");
16}
17