1unsigned int buggy (unsigned int *param)
2{
3  unsigned int accu, zero = 0, borrow;
4  accu    = - *param;
5  borrow  = - (accu > zero);
6  *param += accu;
7  return borrow;
8}
9
10int main (void)
11{
12  unsigned int param  = 1;
13  unsigned int borrow = buggy (&param);
14
15  if (param != 0)
16    abort ();
17  if (borrow + 1 != 0)
18    abort ();
19  return 0;
20}
21