Consider this function :
int foo(unsigned int x) { if (x==0) return 0; if (x==1) return x+1; unsigned int half = x/2; // rounded down return f