http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50441
--- Comment #2 from Marc Glisse <marc.glisse at normalesup dot org> 2011-09-17 09:30:25 UTC --- Actually, gcc documents that __int128 is *not* an extended integer type: http://gcc.gnu.org/onlinedocs/gcc/Integers-implementation.html (the comment in the source file specifically mentions __int128) so the behavior is correct. And the standard only allows for 3 floating point types: float, double and long double. Now I agree that's not very helpful, I don't know what the libstdc++ policy is here.