aboutsummaryrefslogtreecommitdiff
path: root/manual
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2023-06-19 18:52:12 +0000
committerJoseph Myers <joseph@codesourcery.com>2023-06-19 18:52:12 +0000
commit5f83b2674e42cd74257731b281f66d0442bf045f (patch)
treecb4d3f19d481d718c4800218f20afc93441199e3 /manual
parent8022fc7d5119a22e9e0ac72798f649385b0e167a (diff)
downloadglibc-5f83b2674e42cd74257731b281f66d0442bf045f.tar
glibc-5f83b2674e42cd74257731b281f66d0442bf045f.tar.gz
glibc-5f83b2674e42cd74257731b281f66d0442bf045f.tar.bz2
glibc-5f83b2674e42cd74257731b281f66d0442bf045f.zip
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.
Diffstat (limited to 'manual')
-rw-r--r--manual/stdio.texi18
1 files changed, 18 insertions, 0 deletions
diff --git a/manual/stdio.texi b/manual/stdio.texi
index 3820a24f3e..a981e6512a 100644
--- a/manual/stdio.texi
+++ b/manual/stdio.texi
@@ -2028,6 +2028,24 @@ Specifies that the argument is a @code{ptrdiff_t}.
This modifier was introduced in @w{ISO C99}.
+@item w@var{n}
+Specifies that the argument is a @code{int@var{n}_t} or
+@code{int_least@var{n}_t} (which are the same type), for conversions
+taking signed integers, or @code{uint@var{n}_t} or
+@code{uint_least@var{n}_t} (which are the same type), for conversions
+taking unsigned integers. If the type is narrower than @code{int},
+the promoted argument is converted back to the specified type.
+
+This modifier was introduced in @w{ISO C2X}.
+
+@item wf@var{n}
+Specifies that the argument is a @code{int_fast@var{n}_t} or
+@code{uint_fast@var{n}_t}, as appropriate. If the type is narrower
+than @code{int}, the promoted argument is converted back to the
+specified type.
+
+This modifier was introduced in @w{ISO C2X}.
+
@item z
@itemx Z
Specifies that the argument is a @code{size_t}.