* Segher Boessenkool: >> The comment is wrong. The code checks for signed overflow, but the >> following assignment still overflwos when ux is larger than INT_MAX. > > No, it doesn't. This conversion is implementation-defined (6.3.1.3/3), > and GCC does the obvious two's complement thing. This code is fine. It's fine with GCC 4.4, and likely with GCC 4.5 as well. But what about GCC 4.6? And how will a user compiling third-party software notice the discrepancy (if it ever arises)?