http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49595
--- Comment #8 from brian m. carlson <sandals at crustytoothpaste dot net> 2011-06-30 20:22:37 UTC --- (In reply to comment #6) > By (directly) using an identifier starting with two underscores you are > leaving > the territory of the C standard. I don't agree. The footnote to the text that I quoted states: "Implementation-defined keywords shall have the form of an identifier reserved for any use as described in 7.1.3." So the standard specifies that such implementation-defined signed integer types (which it has just instructed implementors must be implemented using double underscores) are part of the signed integer types. I don't see another legitimate interpretation here. As I said previously, I want to use 128-bit integers where possible. If intmax_t were correctly and appropriately defined as to use 128-bit integers, then the behavior would not only be standards-conforming with regard to C99, but it would also be practically useful and I wouldn't have to use double-underscored types at all.