| @node stdbit.h | |
| @section @file{stdbit.h} | |
| POSIX :@* Not in POSIX yet, but we expect it will be. | |
| ISO C23 (latest free draft | |
| @url{https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3220.pdf}) | |
| section 7.18. | |
| Gnulib module: stdbit | |
| @mindex stdbit | |
| Portability problems fixed by Gnulib: | |
| @itemize | |
| @item | |
| This header file is missing on many non-C23 platforms: | |
| glibc 2.38, macOS 14, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.5, AIX 7.3.1, HP-UX 11.31, Solaris 11.4, Cygwin 3.5.3, mingw, MSVC 17, Android 15. | |
| @end itemize | |
| Portability problems not fixed by Gnulib: | |
| @itemize | |
| @item | |
| On older non-C23 platforms lacking @code{typeof} or equivalent, a call | |
| to @code{stdc_bit_floor} and @code{stdc_bit_ceil} may yield a type | |
| that is wider than its argument. Although C23 seems to allow this, | |
| it differs from GNU behavior. | |
| @item | |
| On non-C23 platforms, type-generic functions apply portably only to | |
| the standard unsigned integer types specified by C17 or earlier. | |
| @end itemize |