http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49595
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-06-30 18:29:02 UTC --- (In reply to comment #3) > Since the standard specifies intmax_t in terms of a "signed integer type", it > therefore includes any implementation-defined extended signed integer types, Yes. > including __int128_t. You're assuming __int128 is an implementation-defined extended integer type. If GCC chooses to call __int128 some other type that doesn't fall under the C99 definition of "implementation defined integer type" then intmax_t doesn't have to be able to represent its values. Of course this is cheating by playing wordgames, but sizeof(intmax_t) can't change and people want to be able to use __int128