https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108099
--- Comment #14 from Jonathan Wakely <redi at gcc dot gnu.org> --- $ g++ -E -include type_traits -x c++ /dev/null | fgrep int128 struct __is_integral_helper<__int128> struct __is_integral_helper<unsigned __int128> , signed __int128 , unsigned __int128 struct __make_unsigned<__int128> { typedef unsigned __int128 __type; }; struct __make_signed<unsigned __int128> { typedef __int128 __type; }; Those are all correct. They don't use the __int128_t typedef, only the keyword.