buggy(unsigned int * param)1 unsigned 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 
main(void)10 int 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