Hash :
2eb92c36
Author :
Date :
2022-08-09T23:20:49
stdckdint-h: new module This supports draft C23 <stdckdint.h>. * doc/posix-headers/stdckdint.texi: * lib/stdckdint.in.h, modules/stdckdint: * modules/stdckdint-tests, tests/test-stdckdint.c: New files. * MODULES.html.sh, doc/gnulib.texi: Update for new module. * lib/intprops-internal.h: Include <stdckdint.h> if C23 and its macros would help and our substitute has not already started to be included. (_GL_INT_ADD_WRAPV, _GL_INT_SUBTRACT_WRAPV) (_GL_INT_MULTIPLY_WRAPV): Use ckd_add, ckd_sub, ckd_mul if they are defined and would help. * lib/intprops-internal.h, lib/intprops.h: Improve comments. The C23 restrictions on stdckdint macros already mostly applied to intprops.h, so these are clarifications, not further restrictions. * tests/test-intprops.c: If TEST_STDCKDINT is defined, include <stdckdint.h> instead of "intprops.h", and test it instead. (VERIFY) [TEST_STDCKDINT]: Ignore the arg in this case. (main) [TEST_STDCKDINT]: Skip tests irrelevant to stdckdint.h.
@node stdckdint.h
@section @file{stdckdint.h}
POSIX specification:@* Not in POSIX yet, but we expect it will be.
ISO draft C23
(@url{https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf})
section 7.20.
Gnulib module: stdckdint
Portability problems fixed by Gnulib:
@itemize
@item
This header file is missing on many platforms.
@end itemize
Portability problems not fixed by Gnulib:
@itemize
@item
In draft C23, arguments of @code{stdckdint.h} macros can have side effects.
@end itemize