http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60229
--- Comment #3 from Mikael Pettersson <mikpelinux at gmail dot com> --- Technically there is an overflow there. But GCC defines conversion to a smaller signed integer type, when the value cannot be represented in that smaller type, as a non-signalling truncation. Still, portable code mustn't rely on that.