Actually in the 32bit case gcc warns of an integer overflow, for -INT32_MIN. Funny that -INT16_MIN does not produce this warning, as this is also an overflow. I will leave it as is.