The result of abs(-2147483648) is -2147483648, isn\'t it? it seems unacceptable.
printf(\"abs(-2147483648): %d\\n\", abs(-2147483648));
out
Since 2147483648 is greater than INT_MAX on your implementation, then abs(-2147483648) is undefined.
INT_MAX
abs(-2147483648)