subcc.c   [plain text]


foo (a, c)
{
  int b;

  if (a + c >= 0)			/* b < 0 ==== a < 10? */
    return a | 0x80000000;
  return 0;
}

bar (a)
{
  if (foo (a, 10) & 0x80000000)
    printf ("y");
  else
    printf ("n");
}

main ()
{
  bar (0);
  bar (1);
  bar (-1);
  bar (10);
  bar (-10);
  bar (11);
  bar (-11);
  bar (0x7fffffff);
  bar (-0x7fffffff);

  puts ("");
}