Hi Paul, You noted that ISO C 99, in sections 7.18.2 and 7.18.3 wants macros that expand to expressions that "shall have the same type as would an expression that is an object of the corresponding type converted according to the integer promotions".
However, 7.18.4 wants macros that expand to integer constants that are of type int_leastN_t or uint_leastN_t. But integer constants don't contain casts (section 6.4.4.1) - therefore it is impossible to write down integer constants of type, say, int_least16_t or uint_least16_t. How can INT16_C, UINT16_C be defined then? This affects both glibc's <stdint.h> and gnulib's replacement. Bruno