]> git.ipfire.org Git - thirdparty/gnulib.git/log
thirdparty/gnulib.git
3 weeks agostrings-h: Fix compilation error on AIX in C++ mode.
Bruno Haible [Sat, 9 May 2026 22:37:23 +0000 (00:37 +0200)] 
strings-h: Fix compilation error on AIX in C++ mode.

* lib/strings.in.h: On AIX in C++ mode, before including the system's
<strings.h> file, include <string.h>.

4 weeks agoFix 'restrict' on MSVC and on Solaris 11.4 g++ (regression 2026-05-04).
Bruno Haible [Sat, 9 May 2026 21:09:39 +0000 (23:09 +0200)] 
Fix 'restrict' on MSVC and on Solaris 11.4 g++ (regression 2026-05-04).

* m4/gnulib-common.m4 (AC_C_RESTRICT): Ignore the value of
__STDC_VERSION__ on MSVC or in C++ mode.

4 weeks agoDocument Solaris 10 mmap etc. issues with caddr_t
Paul Eggert [Sat, 9 May 2026 16:17:51 +0000 (09:17 -0700)] 
Document Solaris 10 mmap etc. issues with caddr_t

4 weeks agoDocument another quality assurance recipe.
Bruno Haible [Sat, 9 May 2026 07:12:17 +0000 (09:12 +0200)] 
Document another quality assurance recipe.

* HACKING (Maintaining high quality): Document how to use gnulib-tool
--create-testdir with --extract-recursive-dependents.

4 weeks agogettext-h: fix recently-introduced category typos
Paul Eggert [Sat, 9 May 2026 07:04:17 +0000 (00:04 -0700)] 
gettext-h: fix recently-introduced category typos

* lib/gettext.h (dcgettext, dcngettext): The category arg has type
int, not const char *. Problem found on Solaris 10 with Oracle
Solaris Studio 12.6.

4 weeks agou64: go back to casts for u64init
Paul Eggert [Sat, 9 May 2026 05:57:46 +0000 (22:57 -0700)] 
u64: go back to casts for u64init

* lib/u64.h (u64init) [INT_MAX < UINT64_MAX]: Don’t use a compound
literal here, as u64init is intended for use in static
initializers.  Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2026-05/msg00063.html

4 weeks agoregex-tests: pacify -Wshadow
Paul Eggert [Sat, 9 May 2026 01:46:02 +0000 (18:46 -0700)] 
regex-tests: pacify -Wshadow

* tests/test-regex-en.c (main): Remove unused local.
Nest one of the tests, to avoid shadowing the local ‘pat’.

4 weeks agoGnulib is now safe for -Wuseless-cast
Paul Eggert [Fri, 8 May 2026 22:37:23 +0000 (15:37 -0700)] 
Gnulib is now safe for -Wuseless-cast

* m4/gnulib-common.m4 (gl_CC_GNULIB_WARNINGS):
Remove -Wno-useless-cast.

4 weeks agoAvoid string literal type confusion
Paul Eggert [Fri, 8 May 2026 22:35:18 +0000 (15:35 -0700)] 
Avoid string literal type confusion

Instead of ‘... (char *) "abc" ...’, which is a bit confusing as
"abc" is already of type char *, use ‘static char const s[] =
"abc"; ... (char *) s ....  This pacifices -Wuseless-cast.
* lib/boot-time.c (get_boot_time_uncached):
* lib/time_rz.c (save_abbr):
* tests/test-posix_spawn-chdir.c (test):
* tests/test-posix_spawn-fchdir.c (test):
* tests/test-unsetenv.c (main):
Redo with named string as described above.

4 weeks agotimes-tests: pacify -Wuseless-cast
Paul Eggert [Fri, 8 May 2026 22:17:06 +0000 (15:17 -0700)] 
times-tests: pacify -Wuseless-cast

* tests/test-times.c (tms2ms): New function.
(main): Use it to simplify printing and avoid need for casts.
Pacify -Wuseless-cast via compound literals.

4 weeks agostrncat-tests: omit confusing casts
Paul Eggert [Fri, 8 May 2026 22:15:31 +0000 (15:15 -0700)] 
strncat-tests: omit confusing casts

* tests/test-strncpy.c (check): Omit no-op cast.
* tests/unistr/test-strncat.h (check): Use better type for
page_boundary, removing the need for a cast.

4 weeks agolimits-h-tests: suppress -Wuseless-cast
Paul Eggert [Fri, 8 May 2026 21:34:54 +0000 (14:34 -0700)] 
limits-h-tests: suppress -Wuseless-cast

* tests/test-limits-h.c: Also borrow the suppression of
-Wuseless-cast from intprops.h.

4 weeks agoIn tests, prefer %zu to %lu+cast
Paul Eggert [Fri, 8 May 2026 21:33:33 +0000 (14:33 -0700)] 
In tests, prefer %zu to %lu+cast

* tests/test-dirname.c (main):
* tests/test-gc-pbkdf2-sha1.c (main):
* tests/test-gc-pbkdf2.c (main):
* tests/test-nonblocking-reader.h (full_read)
* tests/test-nonblocking-writer.h (main_writer_loop):
(full_read_from_nonblocking_fd):
* tests/test-read-file.c (test_read_file):
Prefer %zu to %lu plus a cast to unsigned long.
* tests/test-nonblocking-reader.h (full_read)
* tests/test-nonblocking-writer.h (main_writer_loop):
(full_read_from_nonblocking_fd):
Pacify -Wuseless-cast via compound literals.

4 weeks agoAvoid useless casts in m4/*.m4.
Paul Eggert [Fri, 8 May 2026 21:28:51 +0000 (14:28 -0700)] 
Avoid useless casts in m4/*.m4.

This is mostly for consistency. In theory it could help
if someone mistakenly configures with -Wuseless-cast in CFLAGS.
* m4/c32rtomb.m4 (gl_C32RTOMB_SANITYCHECK):
* m4/iswdigit.m4 (gl_FUNC_ISWDIGIT):
* m4/iswxdigit.m4 (gl_FUNC_ISWXDIGIT):
* m4/mbrtoc32.m4 (gl_MBRTOC32_SANITYCHECK):
* m4/mbrtowc.m4 (gl_MBRTOWC_NULL_ARG1)
(gl_MBRTOWC_STORES_INCOMPLETE):
* m4/mbsnrtowcs.m4 (gl_MBSNRTOWCS_WORKS_IN_TRADITIONAL_LOCALE):
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB):
Do not cast to wchar_t when the context is already wchar_t.

4 weeks agoSuppress -Wuseless-cast when calling mmap
Paul Eggert [Fri, 8 May 2026 21:22:56 +0000 (14:22 -0700)] 
Suppress -Wuseless-cast when calling mmap

I assume the void * casts for mmap are for ancient systems
where mmap returned char *, though Gnulib no longer ports to those.
For now, simply suppress the warning in the few places that use
mmap directly.
* lib/stackvma.c, lib/vma-iter.c, tests/mmap-anon-util.h:
Ignore -Wuseless-cast.

4 weeks agosigsegv: pacify -Wuseless-cast
Paul Eggert [Fri, 8 May 2026 21:19:03 +0000 (14:19 -0700)] 
sigsegv: pacify -Wuseless-cast

This also makes the code a bit less confusing.
* lib/sigsegv.c (SIGSEGV_FAULT_ADDRESS): Now of type void *.
Change the Hurd implementation to guarantee this.
(sigsegv_handler): Omit no-longer needed cast to void *.
Omit function pointer cast when SIGSEGV_FAULT_ADDRESS_FROM_SIGINFO,
as it’s not needed in that case.

4 weeks agojit/cache-tests: omit confusing cast.
Paul Eggert [Fri, 8 May 2026 20:09:44 +0000 (13:09 -0700)] 
jit/cache-tests: omit confusing cast.

* tests/jit/test-cache.c (SET_CODE): Omit cast of char * to char *.

4 weeks agowait-process: omit confusing cast
Paul Eggert [Fri, 8 May 2026 20:08:18 +0000 (13:08 -0700)] 
wait-process: omit confusing cast

* lib/wait-process.c (wait_subprocess): Omit confusing cast.

4 weeks agomd2: omit confusing casts
Paul Eggert [Fri, 8 May 2026 20:07:19 +0000 (13:07 -0700)] 
md2: omit confusing casts

* lib/md2.c (md2_process_bytes):
Use size_t, not unsigned long, for size.
Although the code was correct it was unclear.
(md2_update_chksum, md2_compress): Omit confusing casts.

4 weeks agoPacify -Wuseless-cast for pthread_self
Paul Eggert [Fri, 8 May 2026 19:54:37 +0000 (12:54 -0700)] 
Pacify -Wuseless-cast for pthread_self

* lib/glthread/thread.h (gl_thread_self_pointer):
* tests/test-pthread-mutex.c, tests/test-pthread-once2.c:
* tests/test-pthread-rwlock.c, tests/test-pthread-spin.c:
* tests/test-pthread-tss.c: Be consistent about casting
pthread_self to void *, by always casting via intptr_t first.
This pacifies -Wuseless-cast on GNU/Linux.

4 weeks agoPacify -Wuseless-cast via compound literals in tests
Paul Eggert [Fri, 8 May 2026 19:48:04 +0000 (12:48 -0700)] 
Pacify -Wuseless-cast via compound literals in tests

* tests/from-glibc/tst-stdbit.h (TEST_STDBIT_T):
* tests/jit/test-cache.c, tests/test-boot-time.c:
* tests/test-ceilf2.c, tests/test-fflush.c, tests/test-floorf2.c:
* tests/test-mbrtoc32-regular.c, tests/test-mbrtoc32.c:
* tests/test-mbrtowc-w32utf8.c, tests/test-mbrtowc.c:
* tests/test-mbsnrtoc32s.c, tests/test-mbsnrtowcs.c:
* tests/test-mbsrtoc32s.c, tests/test-mbsrtowcs.c:
* tests/test-mbstoc32s.c, tests/test-mbstowcs.c:
* tests/test-sameacls.c, tests/test-towctrans.c:
* tests/test-truncf2.c, tests/test-wcscmp.c, tests/test-wcsncmp.c:
* tests/test-wmemcmp.c:
(main)
* tests/test-c32isalnum.c, tests/test-c32isalpha.c:
* tests/test-c32isblank.c, tests/test-c32iscntrl.c:
* tests/test-c32isdigit.c, tests/test-c32isgraph.c:
* tests/test-c32islower.c, tests/test-c32isprint.c:
* tests/test-c32ispunct.c, tests/test-c32isspace.c:
* tests/test-c32isupper.c, tests/test-c32isxdigit.c:
* tests/test-c32tolower.c, tests/test-c32toupper.c:
* tests/test-iswdigit.c, tests/test-iswpunct.c, tests/test-iswxdigit.c:
(for_character):
* tests/test-c32rtomb.c, tests/test-wcrtomb.c:
(check_character):
* tests/test-mbrtoc32-w32.c, tests/test-mbrtowc-w32.c:
(test_one_locale):
* tests/test-snprintf-posix.h, tests/test-sprintf-posix.h:
* tests/test-vasnprintf-posix.c, tests/test-vasnwprintf-posix.c:
* tests/test-vasprintf-posix.c:
(test_function):
* tests/test-stat-time.c (initialize_filenames):
* tests/uniwidth/test-uc_width2.c (finish_interval):
Use compound literal when it is safer than a cast and it pacifies
-Wuseless-cast.  Also, omit unnecessary casts to a type when the
context is already that type and omitting pacifies -Wuseless-cast.

4 weeks agoPacify -Wuseless-cast via compound literals in lib
Paul Eggert [Fri, 8 May 2026 19:12:07 +0000 (12:12 -0700)] 
Pacify -Wuseless-cast via compound literals in lib

* lib/bitset.c (bitset_print):
* lib/bitset/list.c (LBITSET_ELT_BITS, debug_lbitset):
* lib/bitset/table.c (TBITSET_ELT_BITS):
* lib/bitsetv.c (bitsetv_dump, debug_bitsetv)
(bitsetv_matrix_dump):
* lib/gettext.h (gettext, ngettext, textdomain, bindtextdomain)
(bind_textdomain_codeset):
* lib/gl_anyavltree_list2.h (gl_tree_nx_add_first)
(gl_tree_nx_add_last, gl_tree_nx_add_before)
(gl_tree_nx_add_after):
* lib/gl_anylinked_list2.h (gl_linked_nx_create)
(gl_linked_node_nx_set_value, gl_linked_nx_set_at)
(gl_linked_search_from_to, gl_linked_indexof_from_to)
(gl_linked_nx_add_first, gl_linked_nx_add_last)
(gl_linked_nx_add_before, gl_linked_nx_add_after)
(gl_linked_nx_add_at):
* lib/gl_anyrbtree_list2.h (gl_tree_nx_add_first)
(gl_tree_nx_add_last, gl_tree_nx_add_before)
(gl_tree_nx_add_after):
* lib/gl_anytree_list2.h (gl_tree_node_nx_set_value)
(gl_tree_nx_set_at):
* lib/gl_anytreehash_list1.h (add_nodes_to_buckets):
* lib/gl_anytreehash_list2.h (gl_tree_search_from_to):
* lib/gl_array_list.c, lib/gl_carray_list.c, lib/gl_sublist.c:
(INDEX_TO_NODE):
* lib/gl_hash_map.c (gl_hash_search, gl_hash_nx_getput)
(gl_hash_getremove):
* lib/gl_hash_set.c (gl_hash_search, gl_hash_nx_add)
(gl_hash_remove):
* lib/gl_linkedhash_map.c (gl_linkedhash_search)
(gl_linkedhash_nx_getput, gl_linkedhash_getremove):
* lib/gl_linkedhash_set.c (gl_linkedhash_search)
(gl_linkedhash_nx_add, gl_linkedhash_remove):
* lib/isnand-nolibm.h (isnand):
* lib/isnanf-nolibm.h (isnanf):
* lib/isnanl-nolibm.h (isnanl):
* lib/math.in.h (isnand, _gl_isnand, isnan):
* lib/md4.c, lib/sha1.c:
(rol):
* lib/pagealign_alloc.c (pagealign_alloc, pagealign_free):
* lib/ssfmalloc.h (allocate_block_from_pool):
* lib/u64.h (u64hilo, u64lo, u64getlo) [INT_MAX < UINT64_MAX]:
Use compound literal when it is safer than a cast
and it pacifies -Wuseless-cast.
* lib/fsusage.c (PROPAGATE_ALL_ONES):
* lib/glthread/thread.h (glthread_atfork, glthread_sigmask):
Parenthesize more.
* lib/gettext.h (dgettext, dcgettext, dngettext, dcngettext)
(bindtextdomain, bind_textdomain_codeset):
Check types of unused args.

4 weeks agofstrcmp: pacify -Wuseless-cast
Paul Eggert [Fri, 8 May 2026 17:49:06 +0000 (10:49 -0700)] 
fstrcmp: pacify -Wuseless-cast

* lib/fstrcmp.c (fstrcmp_bounded): Omit unnecessary cast
of uintptr_t to uintptr_t.

4 weeks agoargp: pacify -Wuseless-cast
Paul Eggert [Fri, 8 May 2026 17:42:39 +0000 (10:42 -0700)] 
argp: pacify -Wuseless-cast

* lib/argp-help.c (argp_doc): Omit unnecessary cast
of const char * to const char *.

4 weeks agomanywarnings: avoid -Wuseless-cast warnings on GCC <= 13
Pádraig Brady [Fri, 8 May 2026 14:17:53 +0000 (15:17 +0100)] 
manywarnings: avoid -Wuseless-cast warnings on GCC <= 13

* m4/manywarnings.m4: Only consider -Wuseless-cast on GCC >= 14
Fix suggested by Bruno Haible.

4 weeks agoRevisit some -Wuseless-cast changes.
Bruno Haible [Fri, 8 May 2026 08:11:09 +0000 (10:11 +0200)] 
Revisit some -Wuseless-cast changes.

* lib/xsize.h (xtimes): Use a compound literal instead of sizeof "".

4 weeks agoRevisit some -Wuseless-cast changes.
Bruno Haible [Fri, 8 May 2026 07:55:01 +0000 (09:55 +0200)] 
Revisit some -Wuseless-cast changes.

* lib/intprops-internal.h: Ignore -Wuseless-cast also with gcc 14, 15.
* lib/vasnprintf.c: Likewise. Also, fix a clang warning.

4 weeks agoRevisit some -Wuseless-cast changes.
Bruno Haible [Fri, 8 May 2026 07:38:15 +0000 (09:38 +0200)] 
Revisit some -Wuseless-cast changes.

* lib/obstack.in.h (obstack_free): Restore parentheses around macro
argument.
* lib/printf-args.c (PRINTF_FETCHARGS): Do use wchar_t-typed constants.
* lib/vma-iter.c (rof_open): Revert last change. Warning now silenced
through gl_CC_GNULIB_WARNINGS.

4 weeks agoSilence -Wuseless-cast in all Gnulib compilation units.
Bruno Haible [Fri, 8 May 2026 05:02:26 +0000 (07:02 +0200)] 
Silence -Wuseless-cast in all Gnulib compilation units.

* m4/gnulib-common.m4 (gl_CC_GNULIB_WARNINGS): Add -Wno-useless-cast.

4 weeks agoxsize: pacify -Wuseless-cast by ‘1 *’
Paul Eggert [Fri, 8 May 2026 02:18:19 +0000 (19:18 -0700)] 
xsize: pacify -Wuseless-cast by ‘1 *’

* lib/xsize.h (xtimes): Instead of casting N to size_t,
widen it to size_t if it isn’t already wide enough.

4 weeks agoPacify -Wuseless cast with a pragma
Paul Eggert [Fri, 8 May 2026 01:51:15 +0000 (18:51 -0700)] 
Pacify -Wuseless cast with a pragma

* lib/intprops-internal.h: Ignore -Wuseless-cast.
* lib/vasnprintf.c: Ignore -Wuseless-cast.

4 weeks agoPacify GCC 16 -Wuseless-cast by omitting casts
Paul Eggert [Fri, 8 May 2026 00:11:44 +0000 (17:11 -0700)] 
Pacify GCC 16 -Wuseless-cast by omitting casts

* lib/obstack.in.h (obstack_free): Omit unnecessary cast.
* lib/printf-args.c (PRINTF_FETCHARGS): Omit unnecessary casts.
* lib/vma-iter.c (rof_open): Omit unnecessary casts.

4 weeks agofull-write: pacify GCC 16 -Wkeyword-macro
Paul Eggert [Fri, 8 May 2026 00:09:26 +0000 (17:09 -0700)] 
full-write: pacify GCC 16 -Wkeyword-macro

* lib/full-write.c (const): Do not #define.  Instead, use CONST.
(CONST): New macro.
(full_rw): Omit unnecessary cast.

4 weeks agofts: pacify GCC 16 -Wfree-labels
Paul Eggert [Fri, 8 May 2026 00:07:43 +0000 (17:07 -0700)] 
fts: pacify GCC 16 -Wfree-labels

Evidently those FALLTHROUGHs were put in to pacify an old
version of GCC, but that’s no longer needed and nowadays
is even counterproductive.
* lib/fts.c (FALLTHROUGH): Remove; no longer used.
(leaf_optimization): Remove the FALLTHROUGHs.
* modules/fts (Depends-on): Remove ‘attribute’.

4 weeks agomaint: pacify -Wuseless-cast via compound literals
Paul Eggert [Fri, 8 May 2026 00:03:53 +0000 (17:03 -0700)] 
maint: pacify -Wuseless-cast via compound literals

* lib/fsusage.c (PROPAGATE_ALL_ONES):
* lib/fts-cycle.c (AD_hash):
* lib/hash.c (hash_print_statistics, hash_print):
* lib/malloca.h (nmalloca):
* lib/readutmp.c (add_utmp):
* lib/xsize.h (xtimes):
When ((t) (E)) might provoke a -Wuseless-cast diagnostic in GCC 16,
use ((t) {E}) when that’s easy, i.e., when the expression is not
intended for use as a constant expression.

4 weeks agofpucw: pacify -Wuseless-cast
Paul Eggert [Thu, 7 May 2026 23:53:07 +0000 (16:53 -0700)] 
fpucw: pacify -Wuseless-cast

* lib/fpucw.h (SET_FPUCW, BEGIN_LONG_DOUBLE_ROUNDING): Pacify gcc
16 -Wuseless-cast by avoiding casts of void expressions to void.

4 weeks agoregex-tests: work with wchar-single
Paul Eggert [Thu, 7 May 2026 18:25:37 +0000 (11:25 -0700)] 
regex-tests: work with wchar-single

* tests/test-regex-el.c, tests/test-regex-en.c, tests/test-regex-tr.c:
New files, containing the locale-specific parts of the old
tests/test-regex.c.
* modules/regex-tests (Files): Add them.  Add m4/locale-en.m4.
(configure.ac): Add gt_LOCALE_EN_UTF8.
(TESTS, check_PROGRAMS):
Add test-regex-el, test-regex-en, test-regex-tr.
(TESTS_ENVIRONMENT, test_regex_el_LDADD, test_regex_en_LDADD)
(test_regex_tr_LDADD): New macros.
* tests/test-regex.c: Do not include <locale.h>, <wctype.h>,
"localcharset.h".
(really_utf8): Remove.
(main):  Remove the parts assuming specific locales;
they are now moved to the abovementioned new files.

4 weeks agobench-tests: work with wchar-single
Paul Eggert [Thu, 7 May 2026 18:24:22 +0000 (11:24 -0700)] 
bench-tests: work with wchar-single

* modules/mbiter-bench-tests, modules/mbiterf-bench-tests:
* modules/mbswidth-bench-tests, modules/mbuiter-bench-tests:
* modules/mbuiterf-bench-tests, modules/mcel-bench-tests:
(Depends-on): Add streq.
* tests/bench-mbiter.c, tests/bench-mbiterf.c, tests/bench-mbswidth.c:
* tests/bench-mbuiter.c, tests/bench-mbuiterf.c, tests/bench-mcel.c:
If GNULIB_WCHAR_SINGLE_LOCALE, don’t call setlocale with different
locales.

4 weeks agoregex-tests: fix usage of fastmap API
Paul Eggert [Thu, 7 May 2026 18:23:18 +0000 (11:23 -0700)] 
regex-tests: fix usage of fastmap API

* tests/test-regex.c (main): Use documented fastmap API
rather than relying on undocumented behavior.

4 weeks agomanywarnings: no ‘s’ at end of ‘-Wuseless-cast’
Paul Eggert [Thu, 7 May 2026 01:44:17 +0000 (18:44 -0700)] 
manywarnings: no ‘s’ at end of ‘-Wuseless-cast’

* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Fix typo in spelling
of ‘-Wuseless-cast’.  Found by gcc 16.1.1 20260501 (Red Hat 16.1.1-1).

4 weeks agostdckdint-h, stdcountof-h, uchar-h: Simplify for when C++ is not used.
Bruno Haible [Wed, 6 May 2026 18:20:46 +0000 (20:20 +0200)] 
stdckdint-h, stdcountof-h, uchar-h: Simplify for when C++ is not used.

Reported by Pádraig Brady in
<https://lists.gnu.org/archive/html/bug-gnulib/2026-05/msg00032.html>.

* m4/stdckdint_h.m4 (gl_STDCKDINT_H): When $CXX is empty, don't run C++
specific tests.
* m4/stdcountof_h.m4 (gl_STDCOUNTOF_H): Likewise.
* m4/uchar_h.m4 (gl_UCHAR_H): Likewise.

4 weeks agoregex-tests: minor memory cleanup
Paul Eggert [Wed, 6 May 2026 17:18:48 +0000 (10:18 -0700)] 
regex-tests: minor memory cleanup

* tests/test-regex.c (main): No need for regex to be static,
and making it auto is more likely to catch memory leaks in
debugging platforms.  Clean up after its last use.
Omit unnecessary setting/freeing of regs that doesn’t test anything.

4 weeks agopthread-h: Fix compilation error in C++ mode on mingw.
Bruno Haible [Wed, 6 May 2026 09:52:06 +0000 (11:52 +0200)] 
pthread-h: Fix compilation error in C++ mode on mingw.

4 weeks agopthread-h: Fix compilation error in C++ mode.
Bruno Haible [Wed, 6 May 2026 09:43:59 +0000 (11:43 +0200)] 
pthread-h: Fix compilation error in C++ mode.

Reported by Daiki Ueno.

* lib/pthread.in.h: Disable the 'using GNULIB_NAMESPACE::pthread_*'
directives for which the corresponding Gnulib module is not present.

4 weeks agoregex: Fix compilation error with MSVC 2022.
Bruno Haible [Wed, 6 May 2026 08:50:49 +0000 (10:50 +0200)] 
regex: Fix compilation error with MSVC 2022.

* lib/cdefs.h (__restrict_arr): On MSVC, ignore __STDC_VERSION__.
* lib/regex.h (_Restrict_arr_): Likewise.

4 weeks agolocaleinfo: now LGPLv2+
Bruno Haible [Wed, 6 May 2026 07:53:40 +0000 (09:53 +0200)] 
localeinfo: now LGPLv2+

* lib/localeinfo.h: Update license notice.
* lib/localeinfo.c: Likewise.

4 weeks agolocaleinfo: now LGPLv2+
Paul Eggert [Wed, 6 May 2026 06:32:57 +0000 (23:32 -0700)] 
localeinfo: now LGPLv2+

* modules/localeinfo (License): Change from GPL,
since regex depends on it.

4 weeks agoregex: fix glibc bug 20381
Paul Eggert [Wed, 6 May 2026 01:11:07 +0000 (18:11 -0700)] 
regex: fix glibc bug 20381

* lib/regcomp.c [!_LIBC]: Include localeinfo.h.
(re_set_fastmap): Remove icase arg, since it was not right
for initial bytes in multibyte locales.  Change ch arg to
be unsigned char so that callers need not cast.  All callers changed.
(re_set_fastmap_icase): New function.
(re_compile_fastmap_iter): Use it.
* modules/regex (Depends-on): Add localeinfo.
* tests/test-regex.c (main): Test for the bug.

4 weeks agolocaleinfo: port to single-byte non-__STDC_ISO_10646__
Paul Eggert [Wed, 6 May 2026 01:11:07 +0000 (18:11 -0700)] 
localeinfo: port to single-byte non-__STDC_ISO_10646__

* lib/localeinfo.c (CHAR32_T_IS_UNICODE): New macro.
(case_folded_counterparts): In single-byte locales where
char32_t is not known to be Unicode, check all 255 possibilities
instead of hoping that char32_t is Unicode.
* lib/localeinfo.h (CASE_FOLDED_BUFSIZE): Increase to 255.
* modules/localeinfo (Depends-on): Add btoc32.

4 weeks agolocaleinfo: don’t check U+03F2 in newer glibc
Paul Eggert [Wed, 6 May 2026 01:11:07 +0000 (18:11 -0700)] 
localeinfo: don’t check U+03F2 in newer glibc

* lib/localeinfo.c (lonesome_lower): Omit U+03F2 in recent Unicode.

4 weeks agolocaleinfo: add U+1C80 through U+1C88
Paul Eggert [Wed, 6 May 2026 01:11:07 +0000 (18:11 -0700)] 
localeinfo: add U+1C80 through U+1C88

* lib/localeinfo.c (lonesome_lower): Add U+1C80 through U+1C88,
which all have this property in Unicode 17.0.0.  For example,
U+1C80 CYRILLIC SMALL LETTER ROUNDED VE upcases to U+0412 CYRILLIC
CAPITAL LETTER VE which in turn downcases to U+0432 CYRILLIC SMALL
LETTER VE.

4 weeks agowchar-h: doc wchar_t limitations
Paul Eggert [Wed, 6 May 2026 01:11:07 +0000 (18:11 -0700)] 
wchar-h: doc wchar_t limitations

* doc/posix-headers/wchar.texi: Mention which platforms don’t
use Unicode for wchar_t.

4 weeks agolocaleinfo: wbctowc comment
Paul Eggert [Wed, 6 May 2026 01:11:07 +0000 (18:11 -0700)] 
localeinfo: wbctowc comment

* lib/localeinfo.h: Improve comment.

4 weeks agolocaleinfo: use countof
Paul Eggert [Wed, 6 May 2026 01:11:07 +0000 (18:11 -0700)] 
localeinfo: use countof

* lib/localeinfo.c: Include stdcountof.h.
Simplify by using countof.
* modules/localeinfo (Depends-on): Add stdcountof-h.

4 weeks agolocaleinfo: new module
Paul Eggert [Wed, 6 May 2026 01:21:54 +0000 (18:21 -0700)] 
localeinfo: new module

This is so regex can use localeinfo.[ch].
* modules/dfa (Files): Remove lib/localeinfo.c, lib/localeinfo.h.
(Depends-on): Remove c32tolower, c32toupper.  Add localeinfo.
(Include): Remove localeinfo.h.
* modules/localeinfo: New file.

4 weeks agoautoupdate
Karl Berry [Tue, 5 May 2026 21:09:40 +0000 (14:09 -0700)] 
autoupdate

4 weeks agoPacify GCC 16 -Wkeyword-macro for ‘restrict’
Paul Eggert [Mon, 4 May 2026 21:07:12 +0000 (14:07 -0700)] 
Pacify GCC 16 -Wkeyword-macro for ‘restrict’

Problem reported by Collin Funk in:
https://lists.gnu.org/r/bug-gnulib/2026-05/msg00011.html
* m4/gnulib-common.m4 (AC_C_RESTRICT): Sync from Autoconf Savannah
git commit b692310133c217edd7cbeeb1ddf592a18dab945f, and override
for Autoconf 2.73 and earlier.  This protects the "#undef
restrict", which may transmute into "#define restrict
__restrict__", if ! (defined __STDC_VERSION__ && 199901L <=
__STDC_VERSION__).

4 weeks agoacl-permissions: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 13:30:59 +0000 (15:30 +0200)] 
acl-permissions: Use the counted_by attribute.

* lib/acl-internal.h (struct permission_context): On Solaris, mark the
entries field as counted_by count and the ace_entries field as
counted_by ace_count.

4 weeks agowindows-spawn: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 13:22:52 +0000 (15:22 +0200)] 
windows-spawn: Use the counted_by attribute.

* lib/windows-spawn.h (struct inheritable_handles): Mark the ih field as
counted_by count.

4 weeks agostring-desc: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 13:19:52 +0000 (15:19 +0200)] 
string-desc: Use the counted_by attribute.

* lib/string-desc.h (struct rw_string_desc_t, struct string_desc_t):
Mark the _data field as counted_by _nbytes.

4 weeks agossfmalloc: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 13:05:21 +0000 (15:05 +0200)] 
ssfmalloc: Use the counted_by attribute.

* lib/ssfmalloc.h (struct medium_page_header): Mark the gaps field as
counted_by num_gaps.
(allocate_medium_block_in_page): Increase pageptr->num_gaps before
writing into pageptr->gaps.

4 weeks agoreadtokens: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 12:58:41 +0000 (14:58 +0200)] 
readtokens: Use the counted_by attribute.

* lib/readtokens.h (struct tokenbuffer): Mark the buffer field as
counted_by size.

4 weeks agombfile: Add comments regarding the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 12:46:15 +0000 (14:46 +0200)] 
mbfile: Add comments regarding the counted_by attribute.

* lib/mbfile.h (struct mbfile_multi): Clarify how many elements of the
fields buf and pushback are used.

4 weeks agolinebuffer: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 12:35:18 +0000 (14:35 +0200)] 
linebuffer: Use the counted_by attribute.

* lib/linebuffer.h (struct linebuffer): Mark the buffer field as
counted_by size.

4 weeks agohash: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 12:27:16 +0000 (14:27 +0200)] 
hash: Use the counted_by attribute.

* lib/hash.c (struct hash_table): Mark the bucket field as counted_by
n_buckets. Swap these fields (needed for clang, see
<https://discourse.llvm.org/t/rfc-forward-referencing-a-struct-member-within-bounds-annotations/85510>).

4 weeks agolinkedhash-set: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 12:16:26 +0000 (14:16 +0200)] 
linkedhash-set: Use the counted_by attribute.

* lib/gl_linkedhash_set.c (struct gl_set_impl): Mark the table field as
counted_by table_size. Swap these fields (needed for clang).

4 weeks agohash-set: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 12:15:54 +0000 (14:15 +0200)] 
hash-set: Use the counted_by attribute.

* lib/gl_hash_set.c (struct gl_set_impl): Mark the table field as
counted_by table_size. Swap these fields (needed for clang).

4 weeks agolinkedhash-map: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 12:14:52 +0000 (14:14 +0200)] 
linkedhash-map: Use the counted_by attribute.

* lib/gl_linkedhash_map.c (struct gl_map_impl): Mark the table field as
counted_by table_size. Swap these fields (needed for clang).

4 weeks agohash-map: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 12:14:01 +0000 (14:14 +0200)] 
hash-map: Use the counted_by attribute.

* lib/gl_hash_map.c (struct gl_map_impl): Mark the table field as
counted_by table_size. Swap these fields (needed for clang).

4 weeks agolinkedhash-list: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 12:12:41 +0000 (14:12 +0200)] 
linkedhash-list: Use the counted_by attribute.

* lib/gl_anylinked_list1.h (struct gl_list_impl): Mark the table field
as counted_by table_size. Swap these fields (needed for clang).

4 weeks agorbtreehash-list: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 12:08:20 +0000 (14:08 +0200)] 
rbtreehash-list: Use the counted_by attribute.

* lib/gl_anyrbtree_list1.h (struct gl_list_impl): Mark the table field
as counted_by table_size. Swap these fields (needed for clang).

4 weeks agoavltreehash-list: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 12:07:23 +0000 (14:07 +0200)] 
avltreehash-list: Use the counted_by attribute.

* lib/gl_anyavltree_list1.h (struct gl_list_impl): Mark the table field
as counted_by table_size. Swap these fields (needed for clang).

4 weeks agocarray-list: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 11:58:53 +0000 (13:58 +0200)] 
carray-list: Use the counted_by attribute.

* lib/gl_carray_list.c (struct gl_list_impl): Mark the elements field as
counted_by allocated. Swap these fields (needed for clang).

4 weeks agoarray-set: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 11:54:51 +0000 (13:54 +0200)] 
array-set: Use the counted_by attribute.

* lib/gl_array_set.c (struct gl_set_impl): Mark the elements field as
counted_by count. Swap these fields (needed for clang).
(gl_array_nx_add): Increase set->count before writing into
set->elements.

4 weeks agoarray-oset: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 11:53:34 +0000 (13:53 +0200)] 
array-oset: Use the counted_by attribute.

* lib/gl_array_oset.c (struct gl_oset_impl): Mark the elements field as
counted_by count. Swap these fields (needed for clang).
(gl_array_nx_add_at): Increase set->count before writing into
set->elements.

4 weeks agoarray-omap: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 11:52:05 +0000 (13:52 +0200)] 
array-omap: Use the counted_by attribute.

* lib/gl_array_omap.c (struct gl_omap_impl): Mark the pairs field as
counted_by count. Swap these fields (needed for clang).
(gl_array_nx_add_at): Increase map->count before writing into
map->pairs.

4 weeks agoarray-map: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 11:50:43 +0000 (13:50 +0200)] 
array-map: Use the counted_by attribute.

* lib/gl_array_map.c (struct gl_map_impl): Mark the pairs field as
counted_by count. Swap these fields (needed for clang).
(gl_array_nx_getput): Increase map->count before writing into
map->pairs.

4 weeks agoarray-list: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 09:41:31 +0000 (11:41 +0200)] 
array-list: Use the counted_by attribute.

* lib/gl_array_list.c (struct gl_list_impl): Mark the elements field as
counted_by count. Swap these fields (needed for clang).
(gl_array_nx_add_first, gl_array_nx_add_last, gl_array_nx_add_before,
gl_array_nx_add_after, gl_array_nx_add_at): Increase list->count before
writing into list->elements.

4 weeks agoexclude: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 08:52:33 +0000 (10:52 +0200)] 
exclude: Use the counted_by attribute.

* lib/exclude.c (struct exclude_pattern): Mark the exclude field as
counted_by exclude_count. Swap these fields (needed for clang, see
<https://discourse.llvm.org/t/rfc-forward-referencing-a-struct-member-within-bounds-annotations/85510>).
(new_exclude_segment): Update.
(add_exclude): Increase pat->exclude_count before writing into
pat->exclude.

4 weeks agodfa: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 08:40:52 +0000 (10:40 +0200)] 
dfa: Use the counted_by attribute.

* lib/dfa.c (struct mb_char_classes): Mark the chars field as counted_by
nchars. Swap these fields (needed for clang, see
<https://discourse.llvm.org/t/rfc-forward-referencing-a-struct-member-within-bounds-annotations/85510>).
(parse_bracket_exp): Increase dfa->lex.brack.nchars before writing into
dfa->lex.brack.chars.

4 weeks agoargp: Use the counted_by attribute.
Bruno Haible [Sun, 3 May 2026 06:51:08 +0000 (08:51 +0200)] 
argp: Use the counted_by attribute.

* lib/argp-help.c (struct hol): Mark the entries fields as counted_by
num_entries. Swap these fields (needed for clang, see
<https://discourse.llvm.org/t/rfc-forward-referencing-a-struct-member-within-bounds-annotations/85510>).

4 weeks agodfa: Remove a redundant forward declaration.
Bruno Haible [Sun, 3 May 2026 08:32:35 +0000 (10:32 +0200)] 
dfa: Remove a redundant forward declaration.

* lib/dfa.h: Remove redundant 'struct dfamust' forward declaration.

4 weeks agocrypto/af_alg: Silence -Wzero-as-null-pointer-constant warning.
Collin Funk [Sat, 2 May 2026 22:55:32 +0000 (15:55 -0700)] 
crypto/af_alg: Silence -Wzero-as-null-pointer-constant warning.

* lib/af_alg.c (alg_socket): Use NULL instead of zero.

5 weeks agostrtof, strtod, strtold: Return NaNs with correct sign.
Bruno Haible [Sat, 2 May 2026 13:27:52 +0000 (15:27 +0200)] 
strtof, strtod, strtold: Return NaNs with correct sign.

Reported by Mohammad-Reza Nabipoor <mnabipoor@gnu.org> in
<https://lists.gnu.org/archive/html/bug-gnulib/2026-04/msg00136.html>.

* m4/strtof.m4 (gl_FUNC_STRTOF): Add test whether strtod works on signed
NaNs.
* m4/strtod.m4 (gl_FUNC_STRTOD): Likewise.
* m4/strtold.m4 (gl_FUNC_STRTOLD): Likewise.
* lib/strtod.c: Include isnan?-nolibm.h.
(HAS_MINUS_NAN_BUG): New macro.
(STRTOD): Add separate implementation for HAS_MINUS_NAN_BUG.
* modules/strtof (Files): Add m4/signbit.m4.
(Depends-on): Add isnanf-nolibm, signbit-no-c++.
* modules/strtod (Files): Add m4/signbit.m4.
(Depends-on): Add isnand-nolibm, signbit-no-c++.
* modules/strtold (Files): Add m4/signbit.m4.
(Depends-on): Add isnanl-nolibm, signbit-no-c++.
* tests/test-strtof.h (test_function): Enable the test of sign bits of
NaN.
* tests/test-strtod.h (test_function): Likewise.
* tests/test-strtold.h (test_function): Likewise.
* doc/posix-functions/strtof.texi: Document the bug regarding "-nan".
* doc/posix-functions/strtod.texi: Likewise.
* doc/posix-functions/strtold.texi: Likewise.

5 weeks agopthread_sigmask tests: Fix a build failure on NetBSD.
Bruno Haible [Sat, 2 May 2026 11:30:00 +0000 (13:30 +0200)] 
pthread_sigmask tests: Fix a build failure on NetBSD.

* lib/pthread_sigmask.c (pthread_sigmask): Work around a NetBSD bug.

5 weeks agohamt: Use the counted_by attribute.
Bruno Haible [Fri, 1 May 2026 22:14:10 +0000 (00:14 +0200)] 
hamt: Use the counted_by attribute.

* lib/hamt.c (struct bucket): Mark the elts fields as counted_by
elt_count.

5 weeks agoattribute: Provide access to clang's counted_by attribute.
Bruno Haible [Fri, 1 May 2026 21:59:06 +0000 (23:59 +0200)] 
attribute: Provide access to clang's counted_by attribute.

* m4/gnulib-common.m4 (gl_COMMON_BODY): Define _GL_ATTRIBUTE_COUNTED_BY.
* lib/attribute.h (COUNTED_BY): New macro.

5 weeks agoImprove comments about GCC bugs.
Bruno Haible [Fri, 1 May 2026 20:35:13 +0000 (22:35 +0200)] 
Improve comments about GCC bugs.

* m4/nullptr.m4 (gl_NULLPTR): Add info about gcc bug 114780.
* modules/uniname/uniname (Makefile.am): Add info about gcc bug 110112.
* tests/test-intprops.c: Correct info about gcc bug 68971.

5 weeks agomanywarnings: GCC 16 changes
Paul Eggert [Fri, 1 May 2026 16:03:49 +0000 (09:03 -0700)] 
manywarnings: GCC 16 changes

* build-aux/gcc-warning.spec: Add options introduced in GCC 16.
Remove -Wfree-labels (not limited to objc), -Wuseless-cast
(not limited to c++ and objc++).
* m4/manywarnings.m4 (gl_MANYWARN_ALL_GCC): Add -Wfree-labels,
-Wkeyword-macro (new to GCC 16), -Wuseless-casts.

5 weeks agomanywarnings: simplify C warning audits
Paul Eggert [Fri, 1 May 2026 16:02:37 +0000 (09:02 -0700)] 
manywarnings: simplify C warning audits

* build-aux/gcc-warning.spec: Omit many c++, objc, obcj++,
fortran warnings as we no longer need to track them here.
Mark a few of these warnings as now being defaults (for C too).
* m4/manywarnings.m4: In comment that says how to audit this file,
use ‘gcc --help=c,warnings’ and ‘gcc --help=common,warnings’
instead of ‘gcc --help=warnings’, as the latter outputs irrelevant
warnings about c++, objc, obcj++, fortran.

5 weeks agostdc_rotate_left tests, stdc_rotate_right tests: Fix gcc warning.
Bruno Haible [Fri, 1 May 2026 07:04:07 +0000 (09:04 +0200)] 
stdc_rotate_left tests, stdc_rotate_right tests: Fix gcc warning.

* tests/test-stdc_rotate_left.c (TEST_CASE): Fix "unused variable 'e'"
warning.
* tests/test-stdc_rotate_right.c (TEST_CASE): Likewise.

5 weeks agogetlocalename_l-simple tests: Avoid test failure on NetBSD.
Bruno Haible [Thu, 30 Apr 2026 20:53:21 +0000 (22:53 +0200)] 
getlocalename_l-simple tests: Avoid test failure on NetBSD.

* tests/test-getlocalename_l.c (FAKE_COLLATE): New macro.
(main): If FAKE_COLLATE is true, don't compare the result of
getlocalename_l (LC_COLLATE, ...).
* doc/posix-functions/getlocalename_l.texi: Mention the NetBSD bug.

5 weeks agostdbit-h: namespace cleanup port to G++ 15
Paul Eggert [Thu, 30 Apr 2026 00:10:56 +0000 (17:10 -0700)] 
stdbit-h: namespace cleanup port to G++ 15

For the namespace cleanup, don’t assume that the system <stdbit.h>
defines size_t etc. unless it also defines
__STDC_VERSION_STDBIT_H__.  This works around problems with C++
compilers where ‘#include <stdbit.h>’ is a no-op, such as g++ 15.2.1.
Problem reported by Bruno Haible in:
https://lists.gnu.org/r/bug-gnulib/2026-04/msg00203.html
It also lets us simplify the code by removing a special case for
the Intel icpx C++ compiler.
* lib/stdbit.in.h: When deciding whether <stdbit.h> works,
use (defined __STDC_VERSION_STDBIT_H__) rather than @HAVE_STDBIT_H@.
This fixes problems when <stdbit.h> works for C so @HAVE_STDBIT_H@
is 1, whereas <stdbit.h> does nothing for C++.
(__STDC_VERSION_STDBIT_H__): Move definition to end.

5 weeks agostdbit-h: <stddef.h> namespace cleanup
Paul Eggert [Wed, 29 Apr 2026 22:11:50 +0000 (15:11 -0700)] 
stdbit-h: <stddef.h> namespace cleanup

* lib/stdbit.in.h: Include <stddef.h> only if the stdc_memreverse8
module is also used, since it’s the only one that needs size_t.
Define __need_size_t before including <stddef.h>, so that <stddef.h>
defines only size_t on GNU platforms.

5 weeks agostdbit-h: include <stdint.h> only on module req
Paul Eggert [Wed, 29 Apr 2026 20:58:50 +0000 (13:58 -0700)] 
stdbit-h: include <stdint.h> only on module req

This is another attempt to tighten up the <stdbit.h> namespace
on GNU platforms, and follows up on previous C++ fixes here.
* lib/stdbit.in.h: Include <stdint.h> only when also using a
module like stdc_memreverse8 with an API that uses <stdint.h>
types that are not otherwise defined.
This should work better with portable code, as code that merely
wants u?int(_least)?N_t should include <stdint.h>, not <stdbit.h>.
(_GL_STDBIT_UINT_FAST16 _GL_STDBIT_UINT_FAST32)
(_GL_STDBIT_UINT_FAST64): Simplify logic by defining them to the
<stdint.h> equivalents whenever stdint.h is included.

5 weeks agombrtoc32-regular: Strengthen the configure test.
Bruno Haible [Wed, 29 Apr 2026 14:31:30 +0000 (16:31 +0200)] 
mbrtoc32-regular: Strengthen the configure test.

* m4/mbrtoc32-regular.m4: New file.
* modules/mbrtoc32-regular (Files): Add it.
(configure.ac): Invoke gl_FUNC_MBRTOC32_REGULAR.
* m4/mbrtoc32.m4 (gl_FUNC_MBRTOC32): Set gl_cv_func_mbrtoc32_regular.
If it's "no" or "guessing no", set REPLACE_MBRTOC32=1.

5 weeks agoerror-h: Support multiple gnulib-tool invocations in the same package.
Bruno Haible [Tue, 28 Apr 2026 23:52:17 +0000 (01:52 +0200)] 
error-h: Support multiple gnulib-tool invocations in the same package.

* lib/error.in.h (GNULIB_defined_error, GNULIB_defined_error_at_line):
New macros.
(verror): Test GNULIB_defined_verror, for consistency with the idiom.
(verror_at_line): Test GNULIB_defined_verror_at_line, for consistency
with the idiom.

5 weeks agorealloc-posix: Support multiple gnulib-tool invocations in a package.
Bruno Haible [Tue, 28 Apr 2026 23:49:40 +0000 (01:49 +0200)] 
realloc-posix: Support multiple gnulib-tool invocations in a package.

* lib/stdlib.in.h (rpl_realloc): Don't define if _GL_INLINE_RPL_REALLOC
is already defined.

5 weeks agostring-h: Support multiple gnulib-tool invocations in the same package.
Bruno Haible [Tue, 28 Apr 2026 23:47:39 +0000 (01:47 +0200)] 
string-h: Support multiple gnulib-tool invocations in the same package.

* lib/string.in.h (GNULIB_defined_memeq, GNULIB_defined_streq,
GNULIB_defined_strnul): New macros.

5 weeks agostdbit-h: Support multiple gnulib-tool invocations in the same package.
Bruno Haible [Tue, 28 Apr 2026 23:46:06 +0000 (01:46 +0200)] 
stdbit-h: Support multiple gnulib-tool invocations in the same package.

* lib/stdbit.in.h (GNULIB_defined_clz_functions,
GNULIB_defined_stdc_leading_zeros_functions,
GNULIB_defined_stdc_leading_ones_functions,
GNULIB_defined_ctz_functions,
GNULIB_defined_stdc_trailing_zeros_functions,
GNULIB_defined_stdc_trailing_ones_functions,
GNULIB_defined_stdc_first_leading_zero_functions,
GNULIB_defined_stdc_first_leading_one_functions,
GNULIB_defined_stdc_first_trailing_zero_functions,
GNULIB_defined_stdc_first_trailing_one_functions,
GNULIB_defined_popcount_functions,
GNULIB_defined_stdc_count_ones_functions,
GNULIB_defined_stdc_count_zeros_functions,
GNULIB_defined_stdc_has_single_bit_functions,
GNULIB_defined_stdc_bit_width_functions,
GNULIB_defined_stdc_bit_floor_functions,
GNULIB_defined_stdc_bit_ceil_functions,
GNULIB_defined_stdc_rotate_left_functions,
GNULIB_defined_stdc_rotate_right_functions,
GNULIB_defined_stdc_memreverse8,
GNULIB_defined_stdc_memreverse8u_functions,
GNULIB_defined_stdc_load8_functions,
GNULIB_defined_stdc_load8_aligned_functions,
GNULIB_defined_stdc_store8_functions,
GNULIB_defined_stdc_store8_aligned_functions): New macros.