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