This patch lists the 14 function-like macros from <stdbit.h>
in the documentation.

I'm not documenting the 70 functions (with suffixes _uc, _us, _ui, _ul, _ull),
because this would be excessive (for my taste).

It also updates the platforms list for <stdbit.h>: macOS and Cygwin were
missing from the list where the header is absent.


2024-05-13  Bruno Haible  <br...@clisp.org>

        doc: Document <stdbit.h> function-like macros.
        * doc/posix-headers/stdbit.texi: Reference ISO C 23 as the
        documentation. Update platforms list.
        * doc/posix-functions/stdc_leading_zeros.texi: New file.
        * doc/posix-functions/stdc_leading_ones.texi: New file.
        * doc/posix-functions/stdc_trailing_zeros.texi: New file.
        * doc/posix-functions/stdc_trailing_ones.texi: New file.
        * doc/posix-functions/stdc_first_leading_zero.texi: New file.
        * doc/posix-functions/stdc_first_leading_one.texi: New file.
        * doc/posix-functions/stdc_first_trailing_zero.texi: New file.
        * doc/posix-functions/stdc_first_trailing_one.texi: New file.
        * doc/posix-functions/stdc_count_zeros.texi: New file.
        * doc/posix-functions/stdc_count_ones.texi: New file.
        * doc/posix-functions/stdc_has_single_bit.texi: New file.
        * doc/posix-functions/stdc_bit_width.texi: New file.
        * doc/posix-functions/stdc_bit_floor.texi: New file.
        * doc/posix-functions/stdc_bit_ceil.texi: New file.
        * doc/gnulib.texi (Function Substitutes): Include them all.

diff --git a/doc/gnulib.texi b/doc/gnulib.texi
index 6cbd10619e..24acb1afc8 100644
--- a/doc/gnulib.texi
+++ b/doc/gnulib.texi
@@ -2290,6 +2290,20 @@
 * sscanf::
 * stat::
 * statvfs::
+* stdc_bit_ceil::
+* stdc_bit_floor::
+* stdc_bit_width::
+* stdc_count_ones::
+* stdc_count_zeros::
+* stdc_first_leading_one::
+* stdc_first_leading_zero::
+* stdc_first_trailing_one::
+* stdc_first_trailing_zero::
+* stdc_has_single_bit::
+* stdc_leading_ones::
+* stdc_leading_zeros::
+* stdc_trailing_ones::
+* stdc_trailing_zeros::
 * stderr::
 * stdin::
 * stdout::
@@ -3586,6 +3600,20 @@
 @include posix-functions/sscanf.texi
 @include posix-functions/stat.texi
 @include posix-functions/statvfs.texi
+@include posix-functions/stdc_bit_ceil.texi
+@include posix-functions/stdc_bit_floor.texi
+@include posix-functions/stdc_bit_width.texi
+@include posix-functions/stdc_count_ones.texi
+@include posix-functions/stdc_count_zeros.texi
+@include posix-functions/stdc_first_leading_one.texi
+@include posix-functions/stdc_first_leading_zero.texi
+@include posix-functions/stdc_first_trailing_one.texi
+@include posix-functions/stdc_first_trailing_zero.texi
+@include posix-functions/stdc_has_single_bit.texi
+@include posix-functions/stdc_leading_ones.texi
+@include posix-functions/stdc_leading_zeros.texi
+@include posix-functions/stdc_trailing_ones.texi
+@include posix-functions/stdc_trailing_zeros.texi
 @include posix-functions/stderr.texi
 @include posix-functions/stdin.texi
 @include posix-functions/stdout.texi
diff --git a/doc/posix-functions/stdc_bit_ceil.texi 
b/doc/posix-functions/stdc_bit_ceil.texi
new file mode 100644
index 0000000000..7597c9fcea
--- /dev/null
+++ b/doc/posix-functions/stdc_bit_ceil.texi
@@ -0,0 +1,21 @@
+@node stdc_bit_ceil
+@section @code{stdc_bit_ceil}
+@findex stdc_bit_ceil
+
+Documentation:@*
+ISO C23 (latest free draft
+@url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf})
+section 7.18.16.
+
+Gnulib module: stdbit
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This macro is missing on many platforms:
+glibc 2.38, macOS 12.5, 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
+@end itemize
diff --git a/doc/posix-functions/stdc_bit_floor.texi 
b/doc/posix-functions/stdc_bit_floor.texi
new file mode 100644
index 0000000000..cf2c2aad05
--- /dev/null
+++ b/doc/posix-functions/stdc_bit_floor.texi
@@ -0,0 +1,21 @@
+@node stdc_bit_floor
+@section @code{stdc_bit_floor}
+@findex stdc_bit_floor
+
+Documentation:@*
+ISO C23 (latest free draft
+@url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf})
+section 7.18.15.
+
+Gnulib module: stdbit
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This macro is missing on many platforms:
+glibc 2.38, macOS 12.5, 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
+@end itemize
diff --git a/doc/posix-functions/stdc_bit_width.texi 
b/doc/posix-functions/stdc_bit_width.texi
new file mode 100644
index 0000000000..7e25c3f325
--- /dev/null
+++ b/doc/posix-functions/stdc_bit_width.texi
@@ -0,0 +1,21 @@
+@node stdc_bit_width
+@section @code{stdc_bit_width}
+@findex stdc_bit_width
+
+Documentation:@*
+ISO C23 (latest free draft
+@url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf})
+section 7.18.14.
+
+Gnulib module: stdbit
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This macro is missing on many platforms:
+glibc 2.38, macOS 12.5, 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
+@end itemize
diff --git a/doc/posix-functions/stdc_count_ones.texi 
b/doc/posix-functions/stdc_count_ones.texi
new file mode 100644
index 0000000000..892a27dd47
--- /dev/null
+++ b/doc/posix-functions/stdc_count_ones.texi
@@ -0,0 +1,21 @@
+@node stdc_count_ones
+@section @code{stdc_count_ones}
+@findex stdc_count_ones
+
+Documentation:@*
+ISO C23 (latest free draft
+@url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf})
+section 7.18.12.
+
+Gnulib module: stdbit
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This macro is missing on many platforms:
+glibc 2.38, macOS 12.5, 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
+@end itemize
diff --git a/doc/posix-functions/stdc_count_zeros.texi 
b/doc/posix-functions/stdc_count_zeros.texi
new file mode 100644
index 0000000000..c5717e823a
--- /dev/null
+++ b/doc/posix-functions/stdc_count_zeros.texi
@@ -0,0 +1,21 @@
+@node stdc_count_zeros
+@section @code{stdc_count_zeros}
+@findex stdc_count_zeros
+
+Documentation:@*
+ISO C23 (latest free draft
+@url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf})
+section 7.18.11.
+
+Gnulib module: stdbit
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This macro is missing on many platforms:
+glibc 2.38, macOS 12.5, 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
+@end itemize
diff --git a/doc/posix-functions/stdc_first_leading_one.texi 
b/doc/posix-functions/stdc_first_leading_one.texi
new file mode 100644
index 0000000000..103586df77
--- /dev/null
+++ b/doc/posix-functions/stdc_first_leading_one.texi
@@ -0,0 +1,21 @@
+@node stdc_first_leading_one
+@section @code{stdc_first_leading_one}
+@findex stdc_first_leading_one
+
+Documentation:@*
+ISO C23 (latest free draft
+@url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf})
+section 7.18.8.
+
+Gnulib module: stdbit
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This macro is missing on many platforms:
+glibc 2.38, macOS 12.5, 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
+@end itemize
diff --git a/doc/posix-functions/stdc_first_leading_zero.texi 
b/doc/posix-functions/stdc_first_leading_zero.texi
new file mode 100644
index 0000000000..69be359103
--- /dev/null
+++ b/doc/posix-functions/stdc_first_leading_zero.texi
@@ -0,0 +1,21 @@
+@node stdc_first_leading_zero
+@section @code{stdc_first_leading_zero}
+@findex stdc_first_leading_zero
+
+Documentation:@*
+ISO C23 (latest free draft
+@url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf})
+section 7.18.7.
+
+Gnulib module: stdbit
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This macro is missing on many platforms:
+glibc 2.38, macOS 12.5, 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
+@end itemize
diff --git a/doc/posix-functions/stdc_first_trailing_one.texi 
b/doc/posix-functions/stdc_first_trailing_one.texi
new file mode 100644
index 0000000000..08970b4565
--- /dev/null
+++ b/doc/posix-functions/stdc_first_trailing_one.texi
@@ -0,0 +1,21 @@
+@node stdc_first_trailing_one
+@section @code{stdc_first_trailing_one}
+@findex stdc_first_trailing_one
+
+Documentation:@*
+ISO C23 (latest free draft
+@url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf})
+section 7.18.10.
+
+Gnulib module: stdbit
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This macro is missing on many platforms:
+glibc 2.38, macOS 12.5, 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
+@end itemize
diff --git a/doc/posix-functions/stdc_first_trailing_zero.texi 
b/doc/posix-functions/stdc_first_trailing_zero.texi
new file mode 100644
index 0000000000..689ede9410
--- /dev/null
+++ b/doc/posix-functions/stdc_first_trailing_zero.texi
@@ -0,0 +1,21 @@
+@node stdc_first_trailing_zero
+@section @code{stdc_first_trailing_zero}
+@findex stdc_first_trailing_zero
+
+Documentation:@*
+ISO C23 (latest free draft
+@url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf})
+section 7.18.9.
+
+Gnulib module: stdbit
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This macro is missing on many platforms:
+glibc 2.38, macOS 12.5, 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
+@end itemize
diff --git a/doc/posix-functions/stdc_has_single_bit.texi 
b/doc/posix-functions/stdc_has_single_bit.texi
new file mode 100644
index 0000000000..ce0745ee82
--- /dev/null
+++ b/doc/posix-functions/stdc_has_single_bit.texi
@@ -0,0 +1,21 @@
+@node stdc_has_single_bit
+@section @code{stdc_has_single_bit}
+@findex stdc_has_single_bit
+
+Documentation:@*
+ISO C23 (latest free draft
+@url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf})
+section 7.18.13.
+
+Gnulib module: stdbit
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This macro is missing on many platforms:
+glibc 2.38, macOS 12.5, 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
+@end itemize
diff --git a/doc/posix-functions/stdc_leading_ones.texi 
b/doc/posix-functions/stdc_leading_ones.texi
new file mode 100644
index 0000000000..15e7050787
--- /dev/null
+++ b/doc/posix-functions/stdc_leading_ones.texi
@@ -0,0 +1,21 @@
+@node stdc_leading_ones
+@section @code{stdc_leading_ones}
+@findex stdc_leading_ones
+
+Documentation:@*
+ISO C23 (latest free draft
+@url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf})
+section 7.18.4.
+
+Gnulib module: stdbit
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This macro is missing on many platforms:
+glibc 2.38, macOS 12.5, 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
+@end itemize
diff --git a/doc/posix-functions/stdc_leading_zeros.texi 
b/doc/posix-functions/stdc_leading_zeros.texi
new file mode 100644
index 0000000000..a1f6a70875
--- /dev/null
+++ b/doc/posix-functions/stdc_leading_zeros.texi
@@ -0,0 +1,21 @@
+@node stdc_leading_zeros
+@section @code{stdc_leading_zeros}
+@findex stdc_leading_zeros
+
+Documentation:@*
+ISO C23 (latest free draft
+@url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf})
+section 7.18.3.
+
+Gnulib module: stdbit
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This macro is missing on many platforms:
+glibc 2.38, macOS 12.5, 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
+@end itemize
diff --git a/doc/posix-functions/stdc_trailing_ones.texi 
b/doc/posix-functions/stdc_trailing_ones.texi
new file mode 100644
index 0000000000..ceb67912eb
--- /dev/null
+++ b/doc/posix-functions/stdc_trailing_ones.texi
@@ -0,0 +1,21 @@
+@node stdc_trailing_ones
+@section @code{stdc_trailing_ones}
+@findex stdc_trailing_ones
+
+Documentation:@*
+ISO C23 (latest free draft
+@url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf})
+section 7.18.6.
+
+Gnulib module: stdbit
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This macro is missing on many platforms:
+glibc 2.38, macOS 12.5, 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
+@end itemize
diff --git a/doc/posix-functions/stdc_trailing_zeros.texi 
b/doc/posix-functions/stdc_trailing_zeros.texi
new file mode 100644
index 0000000000..b877c23279
--- /dev/null
+++ b/doc/posix-functions/stdc_trailing_zeros.texi
@@ -0,0 +1,21 @@
+@node stdc_trailing_zeros
+@section @code{stdc_trailing_zeros}
+@findex stdc_trailing_zeros
+
+Documentation:@*
+ISO C23 (latest free draft
+@url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf})
+section 7.18.5.
+
+Gnulib module: stdbit
+
+Portability problems fixed by Gnulib:
+@itemize
+@item
+This macro is missing on many platforms:
+glibc 2.38, macOS 12.5, 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
+@end itemize
diff --git a/doc/posix-headers/stdbit.texi b/doc/posix-headers/stdbit.texi
index 8870668a59..b3b59229f3 100644
--- a/doc/posix-headers/stdbit.texi
+++ b/doc/posix-headers/stdbit.texi
@@ -1,14 +1,18 @@
 @node stdbit.h
 @section @file{stdbit.h}
 
+POSIX :@* Not in POSIX yet, but we expect it will be.
+ISO C23 (latest free draft
+@url{http://www.open-std.org/jtc1/sc22/wg14/www/docs/n3047.pdf})
+section 7.18.
+
 Gnulib module: stdbit
 
 Portability problems fixed by Gnulib:
 @itemize
 @item
 This header file is missing on many non-C23 platforms:
-glibc 2.38, FreeBSD 14.0, NetBSD 10.0, OpenBSD 7.5,
-AIX 7.3, HP-UX 11.31, Solaris 11.4, mingw, MSVC 17, Android 15.
+glibc 2.38, macOS 12.5, 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:




Reply via email to