C2x printf %wN, %wfN support (bug 24466)
commit5f83b2674e42cd74257731b281f66d0442bf045f
authorJoseph Myers <joseph@codesourcery.com>
Mon, 19 Jun 2023 18:52:12 +0000 (19 18:52 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Mon, 19 Jun 2023 18:52:12 +0000 (19 18:52 +0000)
treecb4d3f19d481d718c4800218f20afc93441199e3
parent8022fc7d5119a22e9e0ac72798f649385b0e167a
C2x printf %wN, %wfN support (bug 24466)

ISO C2x defines printf length modifiers wN (for intN_t / int_leastN_t
/ uintN_t / uint_leastN_t) and wfN (for int_fastN_t / uint_fastN_t).
Add support for those length modifiers (such a feature was previously
requested in bug 24466).  scanf support is to be added separately.
GCC 13 has format checking support for these modifiers.

When used with the support for registering format specifiers, these
modifiers are translated to existing flags in struct printf_info,
rather than trying to add some way of distinguishing them without
breaking the printf_info ABI.  C2x requires an error to be returned
for unsupported values of N; this is implemented for printf-family
functions, but the parse_printf_format interface doesn't support error
returns, so such an error gets discarded by that function.

Tested for x86_64 and x86.
NEWS
manual/stdio.texi
stdio-common/Makefile
stdio-common/printf-parse.h
stdio-common/printf-parsemb.c
stdio-common/printf-prs.c
stdio-common/tst-printf-intn-main.c [new file with mode: 0644]
stdio-common/tst-printf-intn.c [new file with mode: 0644]
stdio-common/vfprintf-internal.c
wcsmbs/Makefile
wcsmbs/tst-wprintf-intn.c [new file with mode: 0644]