wrong decltype( INTN_C(value) )?

Yaron Cohen-Tal yaronct@gmail.com
Sun Mar 27 20:54:00 GMT 2016


Hi,

I was wondering: according to the C99 standard (I couldn't get hold of
the C11 standard) it seems like e.g. "INT8_C" should have the type
"int_least8_t". From section 7.18.4.1:

"The macro INTN_C(value) shall expand to a signed integer constant
with the specified value and type int_leastN_t"

However, on my system (Debian 8 x64) "INT8_C(1)" expands to "1" which
has type "int" (which is 32 bit) whereas "int_least8_t" has type
"signed char" (which is 8 bit). So is glibc not conformant to the
standard here, or there's anything I misunderstand? I'd expact it to
expand to "((signed char)1)".



More information about the Libc-help mailing list