Paul Eggert wrote:
> With the recipe, I reproduced the problem and installed the attached 
> patch to fix it. The recipe now works for me on both Fedora 44 x86-64 
> (GCC 16) and on Ubuntu 25.10

Good. Now that a testdir-all succeeds on these two GNU systems, I ran
the many-platforms CI, and I can see that the changes introduced many
test failures in mbrtowc and related tests on
  - Cygwin,
  - native Windows,
  - AIX in 32-bit mode.
See the attached logs.

The "useless cast" warning tricked you into thinking that the cast
was unnecessary. In fact, the expression

     (wchar_t) 0xBADFACE

is intended to represent

  - 0xBADFACE on platforms where wchar_t is 32 bit,
  - 0xFACEU on platforms where wchar_t is 16 bit (namely: Windows
    and AIX in 32-bit mode).

The correct way to get rid of the warning is not to omit the cast,
but to transform it into a compound-initializer (like you did in so
many other places).

Since it causes test failures in the tests/*.c files, one can assume
that the same change causes wrong configuration test results in the
m4/*.m4 files.

There is no such problem with the char32_t casts, because char32_t
can be assumed to be at least 24 bits wide everywhere.


2026-05-10  Bruno Haible  <[email protected]>

        Fix many test failures on Windows and 32-bit AIX (regr. 2026-05-08).
        * tests/test-iswdigit.c (for_character): Restore cast of constants to
        wchar_t, but in the form of a compound initializer.
        * tests/test-iswpunct.c (for_character): Likewise.
        * tests/test-iswxdigit.c (for_character): Likewise.
        * tests/test-mbrtowc.c (main): Likewise.
        * tests/test-mbrtowc-w32.c (test_one_locale): Likewise.
        * tests/test-mbrtowc-w32utf8.c (main): Likewise.
        * tests/test-mbsnrtowcs.c (main): Likewise.
        * tests/test-mbsrtowcs.c (main): Likewise.
        * tests/test-mbstowcs.c (main): Likewise.
        * tests/test-snprintf-posix.h (test_function): Likewise.
        * tests/test-sprintf-posix.h (test_function): Likewise.
        * tests/test-towctrans.c (main): Likewise.
        * tests/test-vasnprintf-posix.c (test_function): Likewise.
        * tests/test-vasnwprintf-posix.c (test_function): Likewise.
        * tests/test-vasprintf-posix.c (test_function): Likewise.
        * tests/test-wcrtomb.c (check_character): Likewise.
        * tests/test-wcscmp.c (main): Likewise.
        * tests/test-wcsncmp.c (main): Likewise.
        * tests/test-wmemcmp.c (main): Likewise.
        * m4/c32rtomb.m4 (gl_C32RTOMB_SANITYCHECK): Likewise.
        * m4/iswdigit.m4 (gl_FUNC_ISWDIGIT): Likewise.
        * m4/iswxdigit.m4 (gl_FUNC_ISWXDIGIT): Likewise.
        * m4/mbrtoc32.m4 (gl_MBRTOC32_SANITYCHECK): Likewise.
        * m4/mbrtowc.m4 (gl_MBRTOWC_NULL_ARG1, gl_MBRTOWC_STORES_INCOMPLETE):
        Likewise.
        * m4/mbsnrtowcs.m4 (gl_MBSNRTOWCS_WORKS_IN_TRADITIONAL_LOCALE):
        Likewise.
        * m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise.

=====================================
   dummy 0: gltests/test-suite.log
=====================================

# TOTAL: 1715
# PASS:  1600
# SKIP:  97
# XFAIL: 1
# FAIL:  17
# XPASS: 0
# ERROR: 0

System information (uname -a): CYGWIN_NT-10.0-20348 3.6.9-1.x86_64 2026-04-21 15:46 UTC x86_64

.. contents:: :depth: 2

FAIL: test-mbrtowc-1.sh
=======================

../../gltests/test-mbrtowc.c:123: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x10041330d main
	../../gltests/test-mbrtowc.c:123
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7299e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70594:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70649:0
0xffffffffffffffff ???
	???:0
FAIL test-mbrtowc-1.sh (exit status: 1)

FAIL: test-mbrtowc-2.sh
=======================

../../gltests/test-mbrtowc.c:123: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x10041330d main
	../../gltests/test-mbrtowc.c:123
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7299e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70594:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70649:0
0xffffffffffffffff ???
	???:0
FAIL test-mbrtowc-2.sh (exit status: 1)

FAIL: test-mbrtowc-3.sh
=======================

../../gltests/test-mbrtowc.c:123: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x10041330d main
	../../gltests/test-mbrtowc.c:123
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7299e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70594:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70649:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbrtowc.c:235: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x1004139c0 main
	../../gltests/test-mbrtowc.c:235
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7299e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70594:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70649:0
0xffffffffffffffff ???
	???:0
FAIL test-mbrtowc-3.sh (exit status: 1)

FAIL: test-mbrtowc-4.sh
=======================

../../gltests/test-mbrtowc.c:123: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x10041330d main
	../../gltests/test-mbrtowc.c:123
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7299e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70594:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70649:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbrtowc.c:326: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x1004137c7 main
	../../gltests/test-mbrtowc.c:326
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7299e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70594:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70649:0
0xffffffffffffffff ???
	???:0
FAIL test-mbrtowc-4.sh (exit status: 1)

FAIL: test-mbsnrtowcs-1.sh
==========================

../../gltests/test-mbsnrtowcs.c:64: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x100413142 main
	../../gltests/test-mbsnrtowcs.c:64
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7268e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70284:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70339:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsnrtowcs.c:124: assertion 'buf[1] == 0xBADFACE' failed
Stack trace:
0x100414121 main
	../../gltests/test-mbsnrtowcs.c:124
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7268e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70284:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70339:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsnrtowcs.c:121: assertion 'buf[4] == 0xBADFACE' failed
Stack trace:
0x100414121 main
	../../gltests/test-mbsnrtowcs.c:124
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7268e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70284:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70339:0
0xffffffffffffffff ???
	???:0
FAIL test-mbsnrtowcs-1.sh (exit status: 1)

FAIL: test-mbsnrtowcs-2.sh
==========================

../../gltests/test-mbsnrtowcs.c:64: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x100413142 main
	../../gltests/test-mbsnrtowcs.c:64
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7268e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70284:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70339:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsnrtowcs.c:203: assertion 'buf[1] == 0xBADFACE' failed
Stack trace:
0x100414767 main
	../../gltests/test-mbsnrtowcs.c:203
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7268e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70284:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70339:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsnrtowcs.c:200: assertion 'buf[4] == 0xBADFACE' failed
Stack trace:
0x100414767 main
	../../gltests/test-mbsnrtowcs.c:203
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7268e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70284:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70339:0
0xffffffffffffffff ???
	???:0
FAIL test-mbsnrtowcs-2.sh (exit status: 1)

FAIL: test-mbsnrtowcs-3.sh
==========================

../../gltests/test-mbsnrtowcs.c:64: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x100413142 main
	../../gltests/test-mbsnrtowcs.c:64
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7268e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70284:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70339:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsnrtowcs.c:224: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x100413bde main
	../../gltests/test-mbsnrtowcs.c:224
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7268e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70284:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70339:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsnrtowcs.c:249: assertion 'buf[2] == 0xBADFACE' failed
Stack trace:
0x100413e9a main
	../../gltests/test-mbsnrtowcs.c:249
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7268e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70284:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70339:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsnrtowcs.c:224: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x100413bde main
	../../gltests/test-mbsnrtowcs.c:224
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7268e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70284:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70339:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsnrtowcs.c:246: assertion 'buf[5] == 0xBADFACE' failed
Stack trace:
0x100413e9a main
	../../gltests/test-mbsnrtowcs.c:249
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7268e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70284:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70339:0
0xffffffffffffffff ???
	???:0
FAIL test-mbsnrtowcs-3.sh (exit status: 1)

FAIL: test-mbsnrtowcs-4.sh
==========================

../../gltests/test-mbsnrtowcs.c:64: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x100413142 main
	../../gltests/test-mbsnrtowcs.c:64
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7268e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70284:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70339:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsnrtowcs.c:278: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x100413766 main
	../../gltests/test-mbsnrtowcs.c:278
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7268e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70284:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70339:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsnrtowcs.c:302: assertion 'buf[2] == 0xBADFACE' failed
Stack trace:
0x100413a13 main
	../../gltests/test-mbsnrtowcs.c:302
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7268e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70284:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70339:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsnrtowcs.c:278: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x100413766 main
	../../gltests/test-mbsnrtowcs.c:278
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7268e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70284:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70339:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsnrtowcs.c:299: assertion 'buf[4] == 0xBADFACE' failed
Stack trace:
0x100413a13 main
	../../gltests/test-mbsnrtowcs.c:302
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7268e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70284:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd70339:0
0xffffffffffffffff ???
	???:0
FAIL test-mbsnrtowcs-4.sh (exit status: 1)

FAIL: test-mbsrtowcs-1.sh
=========================

../../gltests/test-mbsrtowcs.c:64: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x10041312a main
	../../gltests/test-mbsrtowcs.c:64
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7271e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70314:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd703c9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsrtowcs.c:124: assertion 'buf[1] == 0xBADFACE' failed
Stack trace:
0x1004140c8 main
	../../gltests/test-mbsrtowcs.c:124
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7271e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70314:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd703c9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsrtowcs.c:121: assertion 'buf[4] == 0xBADFACE' failed
Stack trace:
0x1004140c8 main
	../../gltests/test-mbsrtowcs.c:124
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7271e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70314:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd703c9:0
0xffffffffffffffff ???
	???:0
FAIL test-mbsrtowcs-1.sh (exit status: 1)

FAIL: test-mbsrtowcs-2.sh
=========================

../../gltests/test-mbsrtowcs.c:64: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x10041312a main
	../../gltests/test-mbsrtowcs.c:64
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7271e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70314:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd703c9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsrtowcs.c:203: assertion 'buf[1] == 0xBADFACE' failed
Stack trace:
0x1004146ec main
	../../gltests/test-mbsrtowcs.c:203
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7271e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70314:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd703c9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsrtowcs.c:200: assertion 'buf[4] == 0xBADFACE' failed
Stack trace:
0x1004146ec main
	../../gltests/test-mbsrtowcs.c:203
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7271e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70314:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd703c9:0
0xffffffffffffffff ???
	???:0
FAIL test-mbsrtowcs-2.sh (exit status: 1)

FAIL: test-mbsrtowcs-3.sh
=========================

../../gltests/test-mbsrtowcs.c:64: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x10041312a main
	../../gltests/test-mbsrtowcs.c:64
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7271e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70314:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd703c9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsrtowcs.c:224: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x100413bab main
	../../gltests/test-mbsrtowcs.c:224
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7271e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70314:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd703c9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsrtowcs.c:249: assertion 'buf[2] == 0xBADFACE' failed
Stack trace:
0x100413e54 main
	../../gltests/test-mbsrtowcs.c:249
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7271e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70314:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd703c9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsrtowcs.c:224: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x100413bab main
	../../gltests/test-mbsrtowcs.c:224
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7271e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70314:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd703c9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsrtowcs.c:246: assertion 'buf[5] == 0xBADFACE' failed
Stack trace:
0x100413e54 main
	../../gltests/test-mbsrtowcs.c:249
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7271e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70314:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd703c9:0
0xffffffffffffffff ???
	???:0
FAIL test-mbsrtowcs-3.sh (exit status: 1)

FAIL: test-mbsrtowcs-4.sh
=========================

../../gltests/test-mbsrtowcs.c:64: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x10041312a main
	../../gltests/test-mbsrtowcs.c:64
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7271e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70314:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd703c9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsrtowcs.c:278: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x100413746 main
	../../gltests/test-mbsrtowcs.c:278
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7271e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70314:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd703c9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsrtowcs.c:302: assertion 'buf[2] == 0xBADFACE' failed
Stack trace:
0x1004139e0 main
	../../gltests/test-mbsrtowcs.c:302
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7271e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70314:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd703c9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsrtowcs.c:278: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x100413746 main
	../../gltests/test-mbsrtowcs.c:278
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7271e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70314:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd703c9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbsrtowcs.c:299: assertion 'buf[4] == 0xBADFACE' failed
Stack trace:
0x1004139e0 main
	../../gltests/test-mbsrtowcs.c:302
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd7271e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd70314:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd703c9:0
0xffffffffffffffff ???
	???:0
FAIL test-mbsrtowcs-4.sh (exit status: 1)

FAIL: test-mbstowcs-1.sh
========================

../../gltests/test-mbstowcs.c:59: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x100413069 main
	../../gltests/test-mbstowcs.c:59
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd73b0e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd71704:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd717b9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbstowcs.c:111: assertion 'buf[1] == 0xBADFACE' failed
Stack trace:
0x100413afb main
	../../gltests/test-mbstowcs.c:111
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd73b0e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd71704:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd717b9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbstowcs.c:108: assertion 'buf[4] == 0xBADFACE' failed
Stack trace:
0x100413afb main
	../../gltests/test-mbstowcs.c:111
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd73b0e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd71704:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd717b9:0
0xffffffffffffffff ???
	???:0
FAIL test-mbstowcs-1.sh (exit status: 1)

FAIL: test-mbstowcs-2.sh
========================

../../gltests/test-mbstowcs.c:59: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x100413069 main
	../../gltests/test-mbstowcs.c:59
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd73b0e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd71704:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd717b9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbstowcs.c:166: assertion 'buf[1] == 0xBADFACE' failed
Stack trace:
0x100414222 main
	../../gltests/test-mbstowcs.c:244
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd73b0e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd71704:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd717b9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbstowcs.c:163: assertion 'buf[5] == 0xBADFACE' failed
Stack trace:
0x100413e59 main
	../../gltests/test-mbstowcs.c:215
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd73b0e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd71704:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd717b9:0
0xffffffffffffffff ???
	???:0
FAIL test-mbstowcs-2.sh (exit status: 1)

FAIL: test-mbstowcs-3.sh
========================

../../gltests/test-mbstowcs.c:59: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x100413069 main
	../../gltests/test-mbstowcs.c:59
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd73b0e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd71704:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd717b9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbstowcs.c:192: assertion 'buf[2] == 0xBADFACE' failed
Stack trace:
0x100414222 main
	../../gltests/test-mbstowcs.c:244
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd73b0e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd71704:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd717b9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbstowcs.c:189: assertion 'buf[5] == 0xBADFACE' failed
Stack trace:
0x100413e59 main
	../../gltests/test-mbstowcs.c:215
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd73b0e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd71704:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd717b9:0
0xffffffffffffffff ???
	???:0
FAIL test-mbstowcs-3.sh (exit status: 1)

FAIL: test-mbstowcs-4.sh
========================

../../gltests/test-mbstowcs.c:59: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x100413069 main
	../../gltests/test-mbstowcs.c:59
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd73b0e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd71704:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd717b9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbstowcs.c:218: assertion 'buf[3] == 0xBADFACE' failed
Stack trace:
0x100414222 main
	../../gltests/test-mbstowcs.c:244
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd73b0e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd71704:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd717b9:0
0xffffffffffffffff ???
	???:0
../../gltests/test-mbstowcs.c:215: assertion 'buf[5] == 0xBADFACE' failed
Stack trace:
0x100413e59 main
	../../gltests/test-mbstowcs.c:215
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd73b0e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd71704:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd717b9:0
0xffffffffffffffff ???
	???:0
FAIL test-mbstowcs-4.sh (exit status: 1)

FAIL: test-vasnwprintf-posix
============================

../../gltests/test-vasnwprintf-posix.c:4174: assertion 'result[0] == 0x76543210' failed
Stack trace:
0x100411b2d test_function
	../../gltests/test-vasnwprintf-posix.c:4174
0x10043f724 test_vasnwprintf
	../../gltests/test-vasnwprintf-posix.c:5280
0x10043f724 main
	../../gltests/test-vasnwprintf-posix.c:5292
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd4897e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd46574:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd46629:0
0xffffffffffffffff ???
	???:0
../../gltests/test-vasnwprintf-posix.c:4188: assertion 'result[9] == 0x76543210' failed
Stack trace:
0x100411c40 test_function
	../../gltests/test-vasnwprintf-posix.c:4188
0x10043f724 test_vasnwprintf
	../../gltests/test-vasnwprintf-posix.c:5280
0x10043f724 main
	../../gltests/test-vasnwprintf-posix.c:5292
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd4897e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd46574:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd46629:0
0xffffffffffffffff ???
	???:0
../../gltests/test-vasnwprintf-posix.c:4174: assertion 'result[0] == 0x76543210' failed
Stack trace:
0x100411b2d test_function
	../../gltests/test-vasnwprintf-posix.c:4174
0x10043f730 test_asnwprintf
	../../gltests/test-vasnwprintf-posix.c:5286
0x10043f730 main
	../../gltests/test-vasnwprintf-posix.c:5293
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd4897e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd46574:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd46629:0
0xffffffffffffffff ???
	???:0
../../gltests/test-vasnwprintf-posix.c:4188: assertion 'result[9] == 0x76543210' failed
Stack trace:
0x100411c40 test_function
	../../gltests/test-vasnwprintf-posix.c:4188
0x10043f730 test_asnwprintf
	../../gltests/test-vasnwprintf-posix.c:5286
0x10043f730 main
	../../gltests/test-vasnwprintf-posix.c:5293
0x7ffaa01880ce ???
	register_frame_ctor+0x7ff99fd4897e:0
0x7ffaa0185cc4 ???
	register_frame_ctor+0x7ff99fd46574:0
0x7ffaa0185d79 ???
	register_frame_ctor+0x7ff99fd46629:0
0xffffffffffffffff ???
	???:0
FAIL test-vasnwprintf-posix.exe (exit status: 1)

=====================================
   dummy 0: gltests/test-suite.log
=====================================

# TOTAL: 1715
# PASS:  1500
# SKIP:  200
# XFAIL: 0
# FAIL:  15
# XPASS: 0
# ERROR: 0

System information (uname -a): CYGWIN_NT-10.0-20348 3.6.9-1.x86_64 2026-04-21 15:46 UTC x86_64

.. contents:: :depth: 2

FAIL: test-mbrtowc-1.sh
=======================

../../gltests/test-mbrtowc.c:123: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x492afb3e main
	../../gltests/test-mbrtowc.c:123
0x492910dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0x49291455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe6302c9f:0
0x268bedda ???
	register_frame_ctor+0xe689cdca:0
0xffffffff ???
	???:0
FAIL test-mbrtowc-1.sh (exit status: 1)

FAIL: test-mbrtowc-2.sh
=======================

../../gltests/test-mbrtowc.c:123: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x492afb3e main
	../../gltests/test-mbrtowc.c:123
0x492910dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0x49291455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe6302c9f:0
0x268bedda ???
	register_frame_ctor+0xe689cdca:0
0xffffffff ???
	???:0
FAIL test-mbrtowc-2.sh (exit status: 1)

FAIL: test-mbrtowc-w32-2.sh
===========================

../../gltests/test-mbrtowc-w32.c:162: assertion 'wc == 0xBADFACE' failed
Stack trace:
0xe6f817de test_one_locale
	../../gltests/test-mbrtowc-w32.c:162
0xe6fa4c59 main
	../../gltests/test-mbrtowc-w32.c:709
0xe6f810dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe6f81455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe62fffdf:0
0x268bedda ???
	register_frame_ctor+0xe689a10a:0
0xffffffff ???
	???:0
FAIL test-mbrtowc-w32-2.sh (exit status: 1)

FAIL: test-mbrtowc-w32-3.sh
===========================

../../gltests/test-mbrtowc-w32.c:162: assertion 'wc == 0xBADFACE' failed
Stack trace:
0xe6f817de test_one_locale
	../../gltests/test-mbrtowc-w32.c:162
0xe6fa4c59 main
	../../gltests/test-mbrtowc-w32.c:709
0xe6f810dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe6f81455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe62fffdf:0
0x268bedda ???
	register_frame_ctor+0xe689a10a:0
0xffffffff ???
	???:0
FAIL test-mbrtowc-w32-3.sh (exit status: 1)

FAIL: test-mbrtowc-w32-4.sh
===========================

../../gltests/test-mbrtowc-w32.c:162: assertion 'wc == 0xBADFACE' failed
Stack trace:
0xe6f817de test_one_locale
	../../gltests/test-mbrtowc-w32.c:162
0xe6fa4c59 main
	../../gltests/test-mbrtowc-w32.c:709
0xe6f810dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe6f81455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe62fffdf:0
0x268bedda ???
	register_frame_ctor+0xe689a10a:0
0xffffffff ???
	???:0
../../gltests/test-mbrtowc-w32.c:162: assertion 'wc == 0xBADFACE' failed
Stack trace:
0xe6f817de test_one_locale
	../../gltests/test-mbrtowc-w32.c:162
0xe6fa4c59 main
	../../gltests/test-mbrtowc-w32.c:709
0xe6f810dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe6f81455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe62fffdf:0
0x268bedda ???
	register_frame_ctor+0xe689a10a:0
0xffffffff ???
	???:0
../../gltests/test-mbrtowc-w32.c:162: assertion 'wc == 0xBADFACE' failed
Stack trace:
0xe6f817de test_one_locale
	../../gltests/test-mbrtowc-w32.c:162
0xe6fa4c59 main
	../../gltests/test-mbrtowc-w32.c:709
0xe6f810dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe6f81455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe62fffdf:0
0x268bedda ???
	register_frame_ctor+0xe689a10a:0
0xffffffff ???
	???:0
../../gltests/test-mbrtowc-w32.c:162: assertion 'wc == 0xBADFACE' failed
Stack trace:
0xe6f817de test_one_locale
	../../gltests/test-mbrtowc-w32.c:162
0xe6fa4c59 main
	../../gltests/test-mbrtowc-w32.c:709
0xe6f810dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe6f81455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe62fffdf:0
0x268bedda ???
	register_frame_ctor+0xe689a10a:0
0xffffffff ???
	???:0
FAIL test-mbrtowc-w32-4.sh (exit status: 1)

FAIL: test-mbrtowc-w32-5.sh
===========================

../../gltests/test-mbrtowc-w32.c:162: assertion 'wc == 0xBADFACE' failed
Stack trace:
0xe6f817de test_one_locale
	../../gltests/test-mbrtowc-w32.c:162
0xe6fa4c59 main
	../../gltests/test-mbrtowc-w32.c:709
0xe6f810dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe6f81455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe62fffdf:0
0x268bedda ???
	register_frame_ctor+0xe689a10a:0
0xffffffff ???
	???:0
../../gltests/test-mbrtowc-w32.c:412: assertion 'wc == 0xBADFACE' failed
Stack trace:
0xe6f81b0c test_one_locale
	../../gltests/test-mbrtowc-w32.c:412
0xe6fa4c59 main
	../../gltests/test-mbrtowc-w32.c:709
0xe6f810dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe6f81455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe62fffdf:0
0x268bedda ???
	register_frame_ctor+0xe689a10a:0
0xffffffff ???
	???:0
FAIL test-mbrtowc-w32-5.sh (exit status: 1)

FAIL: test-mbrtowc-w32-6.sh
===========================

../../gltests/test-mbrtowc-w32.c:162: assertion 'wc == 0xBADFACE' failed
Stack trace:
0xe6f817de test_one_locale
	../../gltests/test-mbrtowc-w32.c:162
0xe6fa4c59 main
	../../gltests/test-mbrtowc-w32.c:709
0xe6f810dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe6f81455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe62fffdf:0
0x268bedda ???
	register_frame_ctor+0xe689a10a:0
0xffffffff ???
	???:0
../../gltests/test-mbrtowc-w32.c:482: assertion 'wc == 0xBADFACE' failed
Stack trace:
0xe6f83679 test_one_locale
	../../gltests/test-mbrtowc-w32.c:482
0xe6fa4c59 main
	../../gltests/test-mbrtowc-w32.c:709
0xe6f810dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe6f81455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe62fffdf:0
0x268bedda ???
	register_frame_ctor+0xe689a10a:0
0xffffffff ???
	???:0
FAIL test-mbrtowc-w32-6.sh (exit status: 1)

FAIL: test-mbrtowc-w32-7.sh
===========================

../../gltests/test-mbrtowc-w32.c:162: assertion 'wc == 0xBADFACE' failed
Stack trace:
0xe6f817de test_one_locale
	../../gltests/test-mbrtowc-w32.c:162
0xe6fa4c59 main
	../../gltests/test-mbrtowc-w32.c:709
0xe6f810dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe6f81455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe62fffdf:0
0x268bedda ???
	register_frame_ctor+0xe689a10a:0
0xffffffff ???
	???:0
../../gltests/test-mbrtowc-w32.c:552: assertion 'wc == 0xBADFACE' failed
Stack trace:
0xe6f83de3 test_one_locale
	../../gltests/test-mbrtowc-w32.c:552
0xe6fa4c59 main
	../../gltests/test-mbrtowc-w32.c:709
0xe6f810dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe6f81455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe62fffdf:0
0x268bedda ???
	register_frame_ctor+0xe689a10a:0
0xffffffff ???
	???:0
FAIL test-mbrtowc-w32-7.sh (exit status: 1)

FAIL: test-mbsnrtowcs-1.sh
==========================

../../gltests/test-mbsnrtowcs.c:64: assertion 'wc == 0xBADFACE' failed
Stack trace:
0xe076fbc5 main
	../../gltests/test-mbsnrtowcs.c:64
0xe07510dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe0751455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe63025cf:0
0x268bedda ???
	register_frame_ctor+0xe689c6fa:0
0xffffffff ???
	???:0
../../gltests/test-mbsnrtowcs.c:124: assertion 'buf[1] == 0xBADFACE' failed
Stack trace:
0xe0770c6a main
	../../gltests/test-mbsnrtowcs.c:124
0xe07510dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe0751455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe63025cf:0
0x268bedda ???
	register_frame_ctor+0xe689c6fa:0
0xffffffff ???
	???:0
../../gltests/test-mbsnrtowcs.c:121: assertion 'buf[4] == 0xBADFACE' failed
Stack trace:
0xe0770c6a main
	../../gltests/test-mbsnrtowcs.c:124
0xe07510dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe0751455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe63025cf:0
0x268bedda ???
	register_frame_ctor+0xe689c6fa:0
0xffffffff ???
	???:0
FAIL test-mbsnrtowcs-1.sh (exit status: 1)

FAIL: test-mbsnrtowcs-2.sh
==========================

../../gltests/test-mbsnrtowcs.c:64: assertion 'wc == 0xBADFACE' failed
Stack trace:
0xe076fbc5 main
	../../gltests/test-mbsnrtowcs.c:64
0xe07510dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe0751455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe63025cf:0
0x268bedda ???
	register_frame_ctor+0xe689c6fa:0
0xffffffff ???
	???:0
../../gltests/test-mbsnrtowcs.c:203: assertion 'buf[1] == 0xBADFACE' failed
Stack trace:
0xe077131b main
	../../gltests/test-mbsnrtowcs.c:203
0xe07510dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe0751455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe63025cf:0
0x268bedda ???
	register_frame_ctor+0xe689c6fa:0
0xffffffff ???
	???:0
../../gltests/test-mbsnrtowcs.c:200: assertion 'buf[4] == 0xBADFACE' failed
Stack trace:
0xe077131b main
	../../gltests/test-mbsnrtowcs.c:203
0xe07510dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xe0751455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe63025cf:0
0x268bedda ???
	register_frame_ctor+0xe689c6fa:0
0xffffffff ???
	???:0
FAIL test-mbsnrtowcs-2.sh (exit status: 1)

FAIL: test-mbsrtowcs-1.sh
=========================

../../gltests/test-mbsrtowcs.c:64: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x2e4ffa9e main
	../../gltests/test-mbsrtowcs.c:64
0x2e4e10dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0x2e4e1455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe630277f:0
0x268bedda ???
	register_frame_ctor+0xe689c8aa:0
0xffffffff ???
	???:0
../../gltests/test-mbsrtowcs.c:124: assertion 'buf[1] == 0xBADFACE' failed
Stack trace:
0x2e500afe main
	../../gltests/test-mbsrtowcs.c:124
0x2e4e10dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0x2e4e1455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe630277f:0
0x268bedda ???
	register_frame_ctor+0xe689c8aa:0
0xffffffff ???
	???:0
../../gltests/test-mbsrtowcs.c:121: assertion 'buf[4] == 0xBADFACE' failed
Stack trace:
0x2e500afe main
	../../gltests/test-mbsrtowcs.c:124
0x2e4e10dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0x2e4e1455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe630277f:0
0x268bedda ???
	register_frame_ctor+0xe689c8aa:0
0xffffffff ???
	???:0
FAIL test-mbsrtowcs-1.sh (exit status: 1)

FAIL: test-mbsrtowcs-2.sh
=========================

../../gltests/test-mbsrtowcs.c:64: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x2e4ffa9e main
	../../gltests/test-mbsrtowcs.c:64
0x2e4e10dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0x2e4e1455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe630277f:0
0x268bedda ???
	register_frame_ctor+0xe689c8aa:0
0xffffffff ???
	???:0
../../gltests/test-mbsrtowcs.c:203: assertion 'buf[1] == 0xBADFACE' failed
Stack trace:
0x2e501184 main
	../../gltests/test-mbsrtowcs.c:203
0x2e4e10dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0x2e4e1455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe630277f:0
0x268bedda ???
	register_frame_ctor+0xe689c8aa:0
0xffffffff ???
	???:0
../../gltests/test-mbsrtowcs.c:200: assertion 'buf[4] == 0xBADFACE' failed
Stack trace:
0x2e501184 main
	../../gltests/test-mbsrtowcs.c:203
0x2e4e10dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0x2e4e1455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe630277f:0
0x268bedda ???
	register_frame_ctor+0xe689c8aa:0
0xffffffff ???
	???:0
FAIL test-mbsrtowcs-2.sh (exit status: 1)

FAIL: test-mbstowcs-1.sh
========================

../../gltests/test-mbstowcs.c:59: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x481df8d6 main
	../../gltests/test-mbstowcs.c:59
0x481c10dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0x481c1455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe6303e0f:0
0x268bedda ???
	register_frame_ctor+0xe689df3a:0
0xffffffff ???
	???:0
../../gltests/test-mbstowcs.c:111: assertion 'buf[1] == 0xBADFACE' failed
Stack trace:
0x481e0397 main
	../../gltests/test-mbstowcs.c:111
0x481c10dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0x481c1455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe6303e0f:0
0x268bedda ???
	register_frame_ctor+0xe689df3a:0
0xffffffff ???
	???:0
../../gltests/test-mbstowcs.c:108: assertion 'buf[4] == 0xBADFACE' failed
Stack trace:
0x481e0397 main
	../../gltests/test-mbstowcs.c:111
0x481c10dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0x481c1455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe6303e0f:0
0x268bedda ???
	register_frame_ctor+0xe689df3a:0
0xffffffff ???
	???:0
FAIL test-mbstowcs-1.sh (exit status: 1)

FAIL: test-mbstowcs-2.sh
========================

../../gltests/test-mbstowcs.c:59: assertion 'wc == 0xBADFACE' failed
Stack trace:
0x481df8d6 main
	../../gltests/test-mbstowcs.c:59
0x481c10dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0x481c1455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe6303e0f:0
0x268bedda ???
	register_frame_ctor+0xe689df3a:0
0xffffffff ???
	???:0
../../gltests/test-mbstowcs.c:166: assertion 'buf[1] == 0xBADFACE' failed
Stack trace:
0x481e0aed main
	../../gltests/test-mbstowcs.c:244
0x481c10dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0x481c1455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe6303e0f:0
0x268bedda ???
	register_frame_ctor+0xe689df3a:0
0xffffffff ???
	???:0
../../gltests/test-mbstowcs.c:163: assertion 'buf[5] == 0xBADFACE' failed
Stack trace:
0x481e071d main
	../../gltests/test-mbstowcs.c:215
0x481c10dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0x481c1455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe6303e0f:0
0x268bedda ???
	register_frame_ctor+0xe689df3a:0
0xffffffff ???
	???:0
FAIL test-mbstowcs-2.sh (exit status: 1)

FAIL: test-vasnwprintf-posix
============================

../../gltests/test-vasnwprintf-posix.c:4174: assertion 'result[0] == 0x76543210' failed
Stack trace:
0xcb4d23d1 test_function
	../../gltests/test-vasnwprintf-posix.c:4174
0xcb509ef4 test_vasnwprintf
	../../gltests/test-vasnwprintf-posix.c:5280
0xcb509ef4 main
	../../gltests/test-vasnwprintf-posix.c:5292
0xcb4c10dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xcb4c1455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe62dad8f:0
0x268bedda ???
	register_frame_ctor+0xe6874eba:0
0xffffffff ???
	???:0
../../gltests/test-vasnwprintf-posix.c:4188: assertion 'result[9] == 0x76543210' failed
Stack trace:
0xcb4d2598 test_function
	../../gltests/test-vasnwprintf-posix.c:4188
0xcb509ef4 test_vasnwprintf
	../../gltests/test-vasnwprintf-posix.c:5280
0xcb509ef4 main
	../../gltests/test-vasnwprintf-posix.c:5292
0xcb4c10dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xcb4c1455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe62dad8f:0
0x268bedda ???
	register_frame_ctor+0xe6874eba:0
0xffffffff ???
	???:0
../../gltests/test-vasnwprintf-posix.c:4174: assertion 'result[0] == 0x76543210' failed
Stack trace:
0xcb4d23d1 test_function
	../../gltests/test-vasnwprintf-posix.c:4174
0xcb509f00 test_asnwprintf
	../../gltests/test-vasnwprintf-posix.c:5286
0xcb509f00 main
	../../gltests/test-vasnwprintf-posix.c:5293
0xcb4c10dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xcb4c1455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe62dad8f:0
0x268bedda ???
	register_frame_ctor+0xe6874eba:0
0xffffffff ???
	???:0
../../gltests/test-vasnwprintf-posix.c:4188: assertion 'result[9] == 0x76543210' failed
Stack trace:
0xcb4d2598 test_function
	../../gltests/test-vasnwprintf-posix.c:4188
0xcb509f00 test_asnwprintf
	../../gltests/test-vasnwprintf-posix.c:5286
0xcb509f00 main
	../../gltests/test-vasnwprintf-posix.c:5293
0xcb4c10dc __tmainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:260
0xcb4c1455 mainCRTStartup
	/usr/src/debug/mingw64-x86_64-runtime-14.0.0-1/crt/crtexe.c:129
0x26324caf ???
	register_frame_ctor+0xe62dad8f:0
0x268bedda ???
	register_frame_ctor+0xe6874eba:0
0xffffffff ???
	???:0
FAIL test-vasnwprintf-posix.exe (exit status: 1)

=====================================
   dummy 0: gltests/test-suite.log
=====================================

# TOTAL: 1810
# PASS:  1577
# SKIP:  225
# XFAIL: 1
# FAIL:  7
# XPASS: 0
# ERROR: 0

System information (uname -a): AIX 3 7

.. contents:: :depth: 2

FAIL: test-mbrtowc-1.sh
=======================

../../gltests/test-mbrtowc.c:123: assertion 'wc == 0xBADFACE' failed
../../gltests/test-mbrtowc-1.sh[4]: 31719680 Abort(coredump)
FAIL test-mbrtowc-1.sh (exit status: 1)

FAIL: test-mbsnrtowcs-1.sh
==========================

../../gltests/test-mbsnrtowcs.c:64: assertion 'wc == 0xBADFACE' failed
../../gltests/test-mbsnrtowcs-1.sh[4]: 24642030 Abort(coredump)
FAIL test-mbsnrtowcs-1.sh (exit status: 1)

FAIL: test-mbsrtowcs-1.sh
=========================

../../gltests/test-mbsrtowcs.c:64: assertion 'wc == 0xBADFACE' failed
../../gltests/test-mbsrtowcs-1.sh[4]: 24641806 Abort(coredump)
FAIL test-mbsrtowcs-1.sh (exit status: 1)

FAIL: test-mbstowcs-1.sh
========================

../../gltests/test-mbstowcs.c:59: assertion 'wc == 0xBADFACE' failed
../../gltests/test-mbstowcs-1.sh[4]: 24641840 Abort(coredump)
FAIL test-mbstowcs-1.sh (exit status: 1)

FAIL: test-vasnwprintf-posix
============================

../../gltests/test-vasnwprintf-posix.c:4174: assertion 'result[0] == 0x76543210' failed
FAIL test-vasnwprintf-posix (exit status: 134)

From 8ee4c7ca410b7d21c5fff995d4d47472b0d28acb Mon Sep 17 00:00:00 2001
From: Bruno Haible <[email protected]>
Date: Sun, 10 May 2026 23:13:57 +0200
Subject: [PATCH] Fix many test failures on Windows and 32-bit AIX (regr.
 2026-05-08).

* tests/test-iswdigit.c (for_character): Restore cast of constants to
wchar_t, but in the form of a compound initializer.
* tests/test-iswpunct.c (for_character): Likewise.
* tests/test-iswxdigit.c (for_character): Likewise.
* tests/test-mbrtowc.c (main): Likewise.
* tests/test-mbrtowc-w32.c (test_one_locale): Likewise.
* tests/test-mbrtowc-w32utf8.c (main): Likewise.
* tests/test-mbsnrtowcs.c (main): Likewise.
* tests/test-mbsrtowcs.c (main): Likewise.
* tests/test-mbstowcs.c (main): Likewise.
* tests/test-snprintf-posix.h (test_function): Likewise.
* tests/test-sprintf-posix.h (test_function): Likewise.
* tests/test-towctrans.c (main): Likewise.
* tests/test-vasnprintf-posix.c (test_function): Likewise.
* tests/test-vasnwprintf-posix.c (test_function): Likewise.
* tests/test-vasprintf-posix.c (test_function): Likewise.
* tests/test-wcrtomb.c (check_character): Likewise.
* tests/test-wcscmp.c (main): Likewise.
* tests/test-wcsncmp.c (main): Likewise.
* tests/test-wmemcmp.c (main): Likewise.
* m4/c32rtomb.m4 (gl_C32RTOMB_SANITYCHECK): Likewise.
* m4/iswdigit.m4 (gl_FUNC_ISWDIGIT): Likewise.
* m4/iswxdigit.m4 (gl_FUNC_ISWXDIGIT): Likewise.
* m4/mbrtoc32.m4 (gl_MBRTOC32_SANITYCHECK): Likewise.
* m4/mbrtowc.m4 (gl_MBRTOWC_NULL_ARG1, gl_MBRTOWC_STORES_INCOMPLETE):
Likewise.
* m4/mbsnrtowcs.m4 (gl_MBSNRTOWCS_WORKS_IN_TRADITIONAL_LOCALE):
Likewise.
* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise.
---
 ChangeLog                      |  33 ++++++++
 m4/c32rtomb.m4                 |   6 +-
 m4/iswdigit.m4                 |   4 +-
 m4/iswxdigit.m4                |   4 +-
 m4/mbrtoc32.m4                 |  10 +--
 m4/mbrtowc.m4                  |  24 +++---
 m4/mbsnrtowcs.m4               |   8 +-
 m4/wcrtomb.m4                  |   4 +-
 tests/test-iswdigit.c          |   2 +-
 tests/test-iswpunct.c          |   2 +-
 tests/test-iswxdigit.c         |   2 +-
 tests/test-mbrtowc-w32.c       | 144 ++++++++++++++++-----------------
 tests/test-mbrtowc-w32utf8.c   |  34 ++++----
 tests/test-mbrtowc.c           |  92 ++++++++++-----------
 tests/test-mbsnrtowcs.c        |  54 ++++++-------
 tests/test-mbsrtowcs.c         |  54 ++++++-------
 tests/test-mbstowcs.c          |  30 +++----
 tests/test-snprintf-posix.h    |   2 +-
 tests/test-sprintf-posix.h     |   2 +-
 tests/test-towctrans.c         |   4 +-
 tests/test-vasnprintf-posix.c  |  10 +--
 tests/test-vasnwprintf-posix.c |  14 ++--
 tests/test-vasprintf-posix.c   |   2 +-
 tests/test-wcrtomb.c           |   2 +-
 tests/test-wcscmp.c            |  12 +--
 tests/test-wcsncmp.c           |  12 +--
 tests/test-wmemcmp.c           |   8 +-
 27 files changed, 304 insertions(+), 271 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 6f1587bf9e..d0f2d1af5f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,36 @@
+2026-05-10  Bruno Haible  <[email protected]>
+
+	Fix many test failures on Windows and 32-bit AIX (regr. 2026-05-08).
+	* tests/test-iswdigit.c (for_character): Restore cast of constants to
+	wchar_t, but in the form of a compound initializer.
+	* tests/test-iswpunct.c (for_character): Likewise.
+	* tests/test-iswxdigit.c (for_character): Likewise.
+	* tests/test-mbrtowc.c (main): Likewise.
+	* tests/test-mbrtowc-w32.c (test_one_locale): Likewise.
+	* tests/test-mbrtowc-w32utf8.c (main): Likewise.
+	* tests/test-mbsnrtowcs.c (main): Likewise.
+	* tests/test-mbsrtowcs.c (main): Likewise.
+	* tests/test-mbstowcs.c (main): Likewise.
+	* tests/test-snprintf-posix.h (test_function): Likewise.
+	* tests/test-sprintf-posix.h (test_function): Likewise.
+	* tests/test-towctrans.c (main): Likewise.
+	* tests/test-vasnprintf-posix.c (test_function): Likewise.
+	* tests/test-vasnwprintf-posix.c (test_function): Likewise.
+	* tests/test-vasprintf-posix.c (test_function): Likewise.
+	* tests/test-wcrtomb.c (check_character): Likewise.
+	* tests/test-wcscmp.c (main): Likewise.
+	* tests/test-wcsncmp.c (main): Likewise.
+	* tests/test-wmemcmp.c (main): Likewise.
+	* m4/c32rtomb.m4 (gl_C32RTOMB_SANITYCHECK): Likewise.
+	* m4/iswdigit.m4 (gl_FUNC_ISWDIGIT): Likewise.
+	* m4/iswxdigit.m4 (gl_FUNC_ISWXDIGIT): Likewise.
+	* m4/mbrtoc32.m4 (gl_MBRTOC32_SANITYCHECK): Likewise.
+	* m4/mbrtowc.m4 (gl_MBRTOWC_NULL_ARG1, gl_MBRTOWC_STORES_INCOMPLETE):
+	Likewise.
+	* m4/mbsnrtowcs.m4 (gl_MBSNRTOWCS_WORKS_IN_TRADITIONAL_LOCALE):
+	Likewise.
+	* m4/wcrtomb.m4 (gl_FUNC_WCRTOMB): Likewise.
+
 2026-05-10  Bruno Haible  <[email protected]>
 
 	strings-h: Revert last change, now unnecessary.
diff --git a/m4/c32rtomb.m4 b/m4/c32rtomb.m4
index 6f562a2e48..8382e834ca 100644
--- a/m4/c32rtomb.m4
+++ b/m4/c32rtomb.m4
@@ -1,5 +1,5 @@
 # c32rtomb.m4
-# serial 9
+# serial 10
 dnl Copyright (C) 2020-2026 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -153,14 +153,14 @@ AC_DEFUN([gl_C32RTOMB_SANITYCHECK]
       && setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
     {
       mbstate_t state;
-      wchar_t wc = 0xBADFACE;
+      wchar_t wc = (wchar_t) {0xBADFACE};
       char buf[16];
       memset (&state, '\0', sizeof (mbstate_t));
       if (mbrtowc (&wc, "\201\060\211\070", 4, &state) == 4
           && wcrtomb (buf, wc, NULL) == 4
           && memcmp (buf, "\201\060\211\070", 4) == 0)
         {
-          char32_t c32 = 0xBADFACE;
+          char32_t c32 = (wchar_t) {0xBADFACE};
           memset (&state, '\0', sizeof (mbstate_t));
           if (mbrtoc32 (&c32, "\201\060\211\070", 4, &state) == 4
               && c32rtomb (buf, c32, NULL) != 4)
diff --git a/m4/iswdigit.m4 b/m4/iswdigit.m4
index 988e12a5e0..a8793068c8 100644
--- a/m4/iswdigit.m4
+++ b/m4/iswdigit.m4
@@ -1,5 +1,5 @@
 # iswdigit.m4
-# serial 10
+# serial 11
 dnl Copyright (C) 2020-2026 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -52,7 +52,7 @@ AC_DEFUN([gl_FUNC_ISWDIGIT]
   size_t ret;
 
   memset (&state, '\0', sizeof (mbstate_t));
-  wc = 0xBADFACE;
+  wc = (wchar_t) {0xBADFACE};
   ret = mbrtowc (&wc, s, n, &state);
   if (ret != n)
     abort ();
diff --git a/m4/iswxdigit.m4 b/m4/iswxdigit.m4
index af050bf9fd..ca382a3c12 100644
--- a/m4/iswxdigit.m4
+++ b/m4/iswxdigit.m4
@@ -1,5 +1,5 @@
 # iswxdigit.m4
-# serial 10
+# serial 11
 dnl Copyright (C) 2020-2026 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -51,7 +51,7 @@ AC_DEFUN([gl_FUNC_ISWXDIGIT]
   size_t ret;
 
   memset (&state, '\0', sizeof (mbstate_t));
-  wc = 0xBADFACE;
+  wc = (wchar_t) {0xBADFACE};
   ret = mbrtowc (&wc, s, n, &state);
   if (ret != n)
     abort ();
diff --git a/m4/mbrtoc32.m4 b/m4/mbrtoc32.m4
index 1ebcbb1fc6..3eaa49ff41 100644
--- a/m4/mbrtoc32.m4
+++ b/m4/mbrtoc32.m4
@@ -1,5 +1,5 @@
 # mbrtoc32.m4
-# serial 23
+# serial 24
 dnl Copyright (C) 2014-2026 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -303,11 +303,11 @@ AC_DEFUN([gl_MBRTOC32_SANITYCHECK]
       && setlocale (LC_ALL, "$LOCALE_FR") != NULL)
     {
       mbstate_t state;
-      wchar_t wc = 0xBADFACE;
+      wchar_t wc = (wchar_t) {0xBADFACE};
       memset (&state, '\0', sizeof (mbstate_t));
       if (mbrtowc (&wc, "\374", 1, &state) == 1)
         {
-          char32_t c32 = 0xBADFACE;
+          char32_t c32 = (wchar_t) {0xBADFACE};
           memset (&state, '\0', sizeof (mbstate_t));
           if (mbrtoc32 (&c32, "\374", 1, &state) != 1)
             result |= 1;
@@ -320,11 +320,11 @@ AC_DEFUN([gl_MBRTOC32_SANITYCHECK]
       && setlocale (LC_ALL, "$LOCALE_ZH_CN") != NULL)
     {
       mbstate_t state;
-      wchar_t wc = 0xBADFACE;
+      wchar_t wc = (wchar_t) {0xBADFACE};
       memset (&state, '\0', sizeof (mbstate_t));
       if (mbrtowc (&wc, "\224\071\375\067", 4, &state) == 4)
         {
-          char32_t c32 = 0xBADFACE;
+          char32_t c32 = (wchar_t) {0xBADFACE};
           memset (&state, '\0', sizeof (mbstate_t));
           if (mbrtoc32 (&c32, "\224\071\375\067", 4, &state) != 4)
             result |= 2;
diff --git a/m4/mbrtowc.m4 b/m4/mbrtowc.m4
index e88a66850f..381b22dd21 100644
--- a/m4/mbrtowc.m4
+++ b/m4/mbrtowc.m4
@@ -1,5 +1,5 @@
 # mbrtowc.m4
-# serial 48
+# serial 49
 dnl Copyright (C) 2001-2002, 2004-2005, 2008-2026 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
@@ -315,7 +315,7 @@ AC_DEFUN([gl_MBRTOWC_NULL_ARG1]
       size_t ret;
 
       memset (&state, '\0', sizeof (mbstate_t));
-      wc = 0xBADFACE;
+      wc = (wchar_t) {0xBADFACE};
       ret = mbrtowc (&wc, input, 5, &state);
       if (ret != 2)
         result |= 1;
@@ -546,42 +546,42 @@ AC_DEFUN([gl_MBRTOWC_STORES_INCOMPLETE]
   int result = 0;
   if (setlocale (LC_ALL, "French_France.65001") != NULL)
     {
-      wchar_t wc = 0xBADFACE;
+      wchar_t wc = (wchar_t) {0xBADFACE};
       mbstate_t state;
 
       memset (&state, '\0', sizeof (mbstate_t));
       if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2)
-          && wc != 0xBADFACE)
+          && wc != (wchar_t) {0xBADFACE})
         result |= 1;
     }
   if (setlocale (LC_ALL, "Japanese_Japan.932") != NULL)
     {
-      wchar_t wc = 0xBADFACE;
+      wchar_t wc = (wchar_t) {0xBADFACE};
       mbstate_t state;
 
       memset (&state, '\0', sizeof (mbstate_t));
       if (mbrtowc (&wc, "\226", 1, &state) == (size_t)(-2)
-          && wc != 0xBADFACE)
+          && wc != (wchar_t) {0xBADFACE})
         result |= 2;
     }
   if (setlocale (LC_ALL, "Chinese_Taiwan.950") != NULL)
     {
-      wchar_t wc = 0xBADFACE;
+      wchar_t wc = (wchar_t) {0xBADFACE};
       mbstate_t state;
 
       memset (&state, '\0', sizeof (mbstate_t));
       if (mbrtowc (&wc, "\245", 1, &state) == (size_t)(-2)
-          && wc != 0xBADFACE)
+          && wc != (wchar_t) {0xBADFACE})
         result |= 4;
     }
   if (setlocale (LC_ALL, "Chinese_China.936") != NULL)
     {
-      wchar_t wc = 0xBADFACE;
+      wchar_t wc = (wchar_t) {0xBADFACE};
       mbstate_t state;
 
       memset (&state, '\0', sizeof (mbstate_t));
       if (mbrtowc (&wc, "\261", 1, &state) == (size_t)(-2)
-          && wc != 0xBADFACE)
+          && wc != (wchar_t) {0xBADFACE})
         result |= 8;
     }
   return result;
@@ -602,12 +602,12 @@ AC_DEFUN([gl_MBRTOWC_STORES_INCOMPLETE]
 {
   if (setlocale (LC_ALL, "$LOCALE_EN_UTF8") != NULL)
     {
-      wchar_t wc = 0xBADFACE;
+      wchar_t wc = (wchar_t) {0xBADFACE};
       mbstate_t state;
 
       memset (&state, '\0', sizeof (mbstate_t));
       if (mbrtowc (&wc, "\303", 1, &state) == (size_t)(-2)
-          && wc != 0xBADFACE)
+          && wc != (wchar_t) {0xBADFACE})
         return 1;
     }
   return 0;
diff --git a/m4/mbsnrtowcs.m4 b/m4/mbsnrtowcs.m4
index 1d62a7e2bd..500964f8e4 100644
--- a/m4/mbsnrtowcs.m4
+++ b/m4/mbsnrtowcs.m4
@@ -1,5 +1,5 @@
 # mbsnrtowcs.m4
-# serial 10
+# serial 11
 dnl Copyright (C) 2008, 2010-2026 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -94,18 +94,18 @@ AC_DEFUN([gl_MBSNRTOWCS_WORKS_IN_TRADITIONAL_LOCALE]
       {
         size_t i;
         for (i = 0; i < BUFSIZE; i++)
-          buf[i] = 0xBADFACE;
+          buf[i] = (wchar_t) {0xBADFACE};
       }
 
       memset (&state, '\0', sizeof (mbstate_t));
 
-      wc = 0xBADFACE;
+      wc = (wchar_t) {0xBADFACE};
       ret = mbrtowc (&wc, input, 1, &state);
       if (!(ret == 1 && wc == 'B' && mbsinit (&state)))
         return 1;
       input[0] = '\0';
 
-      wc = 0xBADFACE;
+      wc = (wchar_t) {0xBADFACE};
       ret = mbrtowc (&wc, input + 1, 1, &state);
       if (!(ret == 1 && wctob (wc) == (unsigned char) '\374' && mbsinit (&state)))
         return 2;
diff --git a/m4/wcrtomb.m4 b/m4/wcrtomb.m4
index 84620571f4..47f89bf307 100644
--- a/m4/wcrtomb.m4
+++ b/m4/wcrtomb.m4
@@ -1,5 +1,5 @@
 # wcrtomb.m4
-# serial 23
+# serial 24
 dnl Copyright (C) 2008-2026 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -113,7 +113,7 @@ AC_DEFUN([gl_FUNC_WCRTOMB]
       if (wcrtomb (NULL, 0, NULL) != 1)
         result |= 2;
       {
-        wchar_t wc = 0xBADFACE;
+        wchar_t wc = (wchar_t) {0xBADFACE};
         if (mbtowc (&wc, "\303\274", 2) == 2)
           if (wcrtomb (NULL, wc, NULL) != 1)
             result |= 2;
diff --git a/tests/test-iswdigit.c b/tests/test-iswdigit.c
index df81839fd9..500b0d2f5d 100644
--- a/tests/test-iswdigit.c
+++ b/tests/test-iswdigit.c
@@ -37,7 +37,7 @@ for_character (const char *s, size_t n)
   size_t ret;
 
   memset (&state, '\0', sizeof (mbstate_t));
-  wc = 0xBADFACE;
+  wc = (wchar_t) {0xBADFACE};
   ret = mbrtowc (&wc, s, n, &state);
   if (ret == n)
     return iswdigit (wc);
diff --git a/tests/test-iswpunct.c b/tests/test-iswpunct.c
index cc49779473..124664191c 100644
--- a/tests/test-iswpunct.c
+++ b/tests/test-iswpunct.c
@@ -37,7 +37,7 @@ for_character (const char *s, size_t n)
   size_t ret;
 
   memset (&state, '\0', sizeof (mbstate_t));
-  wc = 0xBADFACE;
+  wc = (wchar_t) {0xBADFACE};
   ret = mbrtowc (&wc, s, n, &state);
   if (ret == n)
     return iswpunct (wc);
diff --git a/tests/test-iswxdigit.c b/tests/test-iswxdigit.c
index 85dcae7c9d..7e2a0cb64d 100644
--- a/tests/test-iswxdigit.c
+++ b/tests/test-iswxdigit.c
@@ -37,7 +37,7 @@ for_character (const char *s, size_t n)
   size_t ret;
 
   memset (&state, '\0', sizeof (mbstate_t));
-  wc = 0xBADFACE;
+  wc = (wchar_t) {0xBADFACE};
   ret = mbrtowc (&wc, s, n, &state);
   if (ret == n)
     return iswxdigit (wc);
diff --git a/tests/test-mbrtowc-w32.c b/tests/test-mbrtowc-w32.c
index 776e1937b7..f3d5d22842 100644
--- a/tests/test-mbrtowc-w32.c
+++ b/tests/test-mbrtowc-w32.c
@@ -88,7 +88,7 @@ test_one_locale (const char *name, int codepage)
   /* Test zero-length input.  */
   {
     memset (&state, '\0', sizeof (mbstate_t));
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, "x", 0, &state);
     /* gnulib's implementation returns (size_t)(-2).
        The AIX 5.1 implementation returns (size_t)(-1).
@@ -100,7 +100,7 @@ test_one_locale (const char *name, int codepage)
   /* Test NUL byte input.  */
   {
     memset (&state, '\0', sizeof (mbstate_t));
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, "", 1, &state);
     ASSERT (ret == 0);
     ASSERT (wc == 0);
@@ -141,7 +141,7 @@ test_one_locale (const char *name, int codepage)
         case 'z': case '{': case '|': case '}': case '~':
           /* c is in the ISO C "basic character set".  */
           buf[0] = c;
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, buf, 1, &state);
           ASSERT (ret == 1);
           ASSERT (wc == c);
@@ -156,10 +156,10 @@ test_one_locale (const char *name, int codepage)
   /* Test special calling convention, passing a NULL pointer.  */
   {
     memset (&state, '\0', sizeof (mbstate_t));
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, NULL, 5, &state);
     ASSERT (ret == 0);
-    ASSERT (wc == 0xBADFACE);
+    ASSERT (wc == (wchar_t) {0xBADFACE});
     ASSERT (mbsinit (&state));
   }
 
@@ -171,14 +171,14 @@ test_one_locale (const char *name, int codepage)
         char input[] = "B\374\337er"; /* "B????er" */
         memset (&state, '\0', sizeof (mbstate_t));
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input, 1, &state);
         ASSERT (ret == 1);
         ASSERT (wc == 'B');
         ASSERT (mbsinit (&state));
         input[0] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 1, 1, &state);
         ASSERT (ret == 1);
         ASSERT (wctob (wc) == (unsigned char) '\374');
@@ -191,7 +191,7 @@ test_one_locale (const char *name, int codepage)
         ASSERT (ret == 1);
         ASSERT (mbsinit (&state));
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 2, 3, &state);
         ASSERT (ret == 1);
         ASSERT (wctob (wc) == (unsigned char) '\337');
@@ -199,14 +199,14 @@ test_one_locale (const char *name, int codepage)
         ASSERT (mbsinit (&state));
         input[2] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 3, 2, &state);
         ASSERT (ret == 1);
         ASSERT (wc == 'e');
         ASSERT (mbsinit (&state));
         input[3] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 4, 1, &state);
         ASSERT (ret == 1);
         ASSERT (wc == 'r');
@@ -220,14 +220,14 @@ test_one_locale (const char *name, int codepage)
         char input[] = "x\302\341\346y"; /* "x??????y" */
         memset (&state, '\0', sizeof (mbstate_t));
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input, 1, &state);
         ASSERT (ret == 1);
         ASSERT (wc == 'x');
         ASSERT (mbsinit (&state));
         input[0] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 1, 1, &state);
         ASSERT (ret == 1);
         ASSERT (wctob (wc) == (unsigned char) '\302');
@@ -240,7 +240,7 @@ test_one_locale (const char *name, int codepage)
         ASSERT (ret == 1);
         ASSERT (mbsinit (&state));
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 2, 3, &state);
         ASSERT (ret == 1);
         ASSERT (wctob (wc) == (unsigned char) '\341');
@@ -248,7 +248,7 @@ test_one_locale (const char *name, int codepage)
         ASSERT (mbsinit (&state));
         input[2] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 3, 2, &state);
         ASSERT (ret == 1);
         ASSERT (wctob (wc) == (unsigned char) '\346');
@@ -256,7 +256,7 @@ test_one_locale (const char *name, int codepage)
         ASSERT (mbsinit (&state));
         input[3] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 4, 1, &state);
         ASSERT (ret == 1);
         ASSERT (wc == 'y');
@@ -272,21 +272,21 @@ test_one_locale (const char *name, int codepage)
         char input[] = "B\303\274\303\237er"; /* "B????er" */
         memset (&state, '\0', sizeof (mbstate_t));
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input, 1, &state);
         ASSERT (ret == 1);
         ASSERT (wc == 'B');
         ASSERT (mbsinit (&state));
         input[0] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 1, 1, &state);
         ASSERT (ret == (size_t)(-2));
-        ASSERT (wc == 0xBADFACE);
+        ASSERT (wc == (wchar_t) {0xBADFACE});
         ASSERT (!mbsinit (&state));
         input[1] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 2, 5, &state);
         ASSERT (ret == 1);
         ASSERT (wctob (wc) == EOF);
@@ -299,7 +299,7 @@ test_one_locale (const char *name, int codepage)
         ASSERT (ret == 2);
         ASSERT (mbsinit (&state));
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 3, 4, &state);
         ASSERT (ret == 2);
         ASSERT (wctob (wc) == EOF);
@@ -308,14 +308,14 @@ test_one_locale (const char *name, int codepage)
         input[3] = '\0';
         input[4] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 5, 2, &state);
         ASSERT (ret == 1);
         ASSERT (wc == 'e');
         ASSERT (mbsinit (&state));
         input[5] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 6, 1, &state);
         ASSERT (ret == 1);
         ASSERT (wc == 'r');
@@ -323,61 +323,61 @@ test_one_locale (const char *name, int codepage)
 
         /* Test some invalid input.  */
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */
         ASSERT (ret == (size_t)-1);
         ASSERT (errno == EILSEQ);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\303\300", 2, &state); /* 0xC3 0xC0 */
         ASSERT (ret == (size_t)-1);
         ASSERT (errno == EILSEQ);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\343\300", 2, &state); /* 0xE3 0xC0 */
         ASSERT (ret == (size_t)-1);
         ASSERT (errno == EILSEQ);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\343\300\200", 3, &state); /* 0xE3 0xC0 0x80 */
         ASSERT (ret == (size_t)-1);
         ASSERT (errno == EILSEQ);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\343\200\300", 3, &state); /* 0xE3 0x80 0xC0 */
         ASSERT (ret == (size_t)-1);
         ASSERT (errno == EILSEQ);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\363\300", 2, &state); /* 0xF3 0xC0 */
         ASSERT (ret == (size_t)-1);
         ASSERT (errno == EILSEQ);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\363\300\200\200", 4, &state); /* 0xF3 0xC0 0x80 0x80 */
         ASSERT (ret == (size_t)-1);
         ASSERT (errno == EILSEQ);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\363\200\300", 3, &state); /* 0xF3 0x80 0xC0 */
         ASSERT (ret == (size_t)-1);
         ASSERT (errno == EILSEQ);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\363\200\300\200", 4, &state); /* 0xF3 0x80 0xC0 0x80 */
         ASSERT (ret == (size_t)-1);
         ASSERT (errno == EILSEQ);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\363\200\200\300", 4, &state); /* 0xF3 0x80 0x80 0xC0 */
         ASSERT (ret == (size_t)-1);
         ASSERT (errno == EILSEQ);
@@ -390,14 +390,14 @@ test_one_locale (const char *name, int codepage)
         char input[] = "<\223\372\226\173\214\352>"; /* "<?????????>" */
         memset (&state, '\0', sizeof (mbstate_t));
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input, 1, &state);
         ASSERT (ret == 1);
         ASSERT (wc == '<');
         ASSERT (mbsinit (&state));
         input[0] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 1, 2, &state);
         ASSERT (ret == 2);
         ASSERT (wctob (wc) == EOF);
@@ -406,14 +406,14 @@ test_one_locale (const char *name, int codepage)
         input[1] = '\0';
         input[2] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 3, 1, &state);
         ASSERT (ret == (size_t)(-2));
-        ASSERT (wc == 0xBADFACE);
+        ASSERT (wc == (wchar_t) {0xBADFACE});
         ASSERT (!mbsinit (&state));
         input[3] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 4, 4, &state);
         ASSERT (ret == 1);
         ASSERT (wctob (wc) == EOF);
@@ -426,7 +426,7 @@ test_one_locale (const char *name, int codepage)
         ASSERT (ret == 2);
         ASSERT (mbsinit (&state));
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 5, 3, &state);
         ASSERT (ret == 2);
         ASSERT (wctob (wc) == EOF);
@@ -435,7 +435,7 @@ test_one_locale (const char *name, int codepage)
         input[5] = '\0';
         input[6] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 7, 1, &state);
         ASSERT (ret == 1);
         ASSERT (wc == '>');
@@ -443,12 +443,12 @@ test_one_locale (const char *name, int codepage)
 
         /* Test some invalid input.  */
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */
         ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || ret == (size_t)-2);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\225\377", 2, &state); /* 0x95 0xFF */
         ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || (ret == 2 && wc == 0x30FB));
       }
@@ -460,14 +460,14 @@ test_one_locale (const char *name, int codepage)
         char input[] = "<\244\351\245\273\273\171>"; /* "<?????????>" */
         memset (&state, '\0', sizeof (mbstate_t));
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input, 1, &state);
         ASSERT (ret == 1);
         ASSERT (wc == '<');
         ASSERT (mbsinit (&state));
         input[0] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 1, 2, &state);
         ASSERT (ret == 2);
         ASSERT (wctob (wc) == EOF);
@@ -476,14 +476,14 @@ test_one_locale (const char *name, int codepage)
         input[1] = '\0';
         input[2] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 3, 1, &state);
         ASSERT (ret == (size_t)(-2));
-        ASSERT (wc == 0xBADFACE);
+        ASSERT (wc == (wchar_t) {0xBADFACE});
         ASSERT (!mbsinit (&state));
         input[3] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 4, 4, &state);
         ASSERT (ret == 1);
         ASSERT (wctob (wc) == EOF);
@@ -496,7 +496,7 @@ test_one_locale (const char *name, int codepage)
         ASSERT (ret == 2);
         ASSERT (mbsinit (&state));
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 5, 3, &state);
         ASSERT (ret == 2);
         ASSERT (wctob (wc) == EOF);
@@ -505,7 +505,7 @@ test_one_locale (const char *name, int codepage)
         input[5] = '\0';
         input[6] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 7, 1, &state);
         ASSERT (ret == 1);
         ASSERT (wc == '>');
@@ -513,12 +513,12 @@ test_one_locale (const char *name, int codepage)
 
         /* Test some invalid input.  */
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */
         ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || ret == (size_t)-2);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\225\377", 2, &state); /* 0x95 0xFF */
         ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || (ret == 2 && wc == '?'));
       }
@@ -530,14 +530,14 @@ test_one_locale (const char *name, int codepage)
         char input[] = "<\310\325\261\276\325\132>"; /* "<?????????>" */
         memset (&state, '\0', sizeof (mbstate_t));
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input, 1, &state);
         ASSERT (ret == 1);
         ASSERT (wc == '<');
         ASSERT (mbsinit (&state));
         input[0] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 1, 2, &state);
         ASSERT (ret == 2);
         ASSERT (wctob (wc) == EOF);
@@ -546,14 +546,14 @@ test_one_locale (const char *name, int codepage)
         input[1] = '\0';
         input[2] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 3, 1, &state);
         ASSERT (ret == (size_t)(-2));
-        ASSERT (wc == 0xBADFACE);
+        ASSERT (wc == (wchar_t) {0xBADFACE});
         ASSERT (!mbsinit (&state));
         input[3] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 4, 4, &state);
         ASSERT (ret == 1);
         ASSERT (wctob (wc) == EOF);
@@ -566,7 +566,7 @@ test_one_locale (const char *name, int codepage)
         ASSERT (ret == 2);
         ASSERT (mbsinit (&state));
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 5, 3, &state);
         ASSERT (ret == 2);
         ASSERT (wctob (wc) == EOF);
@@ -575,7 +575,7 @@ test_one_locale (const char *name, int codepage)
         input[5] = '\0';
         input[6] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 7, 1, &state);
         ASSERT (ret == 1);
         ASSERT (wc == '>');
@@ -583,12 +583,12 @@ test_one_locale (const char *name, int codepage)
 
         /* Test some invalid input.  */
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */
         ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || ret == (size_t)-2);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\225\377", 2, &state); /* 0x95 0xFF */
         ASSERT ((ret == (size_t)-1 && errno == EILSEQ) || (ret == 2 && wc == '?'));
       }
@@ -602,21 +602,21 @@ test_one_locale (const char *name, int codepage)
         char input[] = "B\250\271\201\060\211\070er"; /* "B????er" */
         memset (&state, '\0', sizeof (mbstate_t));
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input, 1, &state);
         ASSERT (ret == 1);
         ASSERT (wc == 'B');
         ASSERT (mbsinit (&state));
         input[0] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 1, 1, &state);
         ASSERT (ret == (size_t)(-2));
-        ASSERT (wc == 0xBADFACE);
+        ASSERT (wc == (wchar_t) {0xBADFACE});
         ASSERT (!mbsinit (&state));
         input[1] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 2, 7, &state);
         ASSERT (ret == 1);
         ASSERT (wctob (wc) == EOF);
@@ -629,7 +629,7 @@ test_one_locale (const char *name, int codepage)
         ASSERT (ret == 4);
         ASSERT (mbsinit (&state));
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 3, 6, &state);
         ASSERT (ret == 4);
         ASSERT (wctob (wc) == EOF);
@@ -640,14 +640,14 @@ test_one_locale (const char *name, int codepage)
         input[5] = '\0';
         input[6] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 7, 2, &state);
         ASSERT (ret == 1);
         ASSERT (wc == 'e');
         ASSERT (mbsinit (&state));
         input[7] = '\0';
 
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, input + 8, 1, &state);
         ASSERT (ret == 1);
         ASSERT (wc == 'r');
@@ -655,37 +655,37 @@ test_one_locale (const char *name, int codepage)
 
         /* Test some invalid input.  */
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */
         ASSERT (ret == (size_t)-1);
         ASSERT (errno == EILSEQ);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\225\377", 2, &state); /* 0x95 0xFF */
         ASSERT (ret == (size_t)-1);
         ASSERT (errno == EILSEQ);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\201\045", 2, &state); /* 0x81 0x25 */
         ASSERT (ret == (size_t)-1);
         ASSERT (errno == EILSEQ);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\201\060\377", 3, &state); /* 0x81 0x30 0xFF */
         ASSERT (ret == (size_t)-1);
         ASSERT (errno == EILSEQ);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\201\060\377\064", 4, &state); /* 0x81 0x30 0xFF 0x34 */
         ASSERT (ret == (size_t)-1);
         ASSERT (errno == EILSEQ);
 
         memset (&state, '\0', sizeof (mbstate_t));
-        wc = 0xBADFACE;
+        wc = (wchar_t) {0xBADFACE};
         ret = mbrtowc (&wc, "\201\060\211\072", 4, &state); /* 0x81 0x30 0x89 0x3A */
         ASSERT (ret == (size_t)-1);
         ASSERT (errno == EILSEQ);
diff --git a/tests/test-mbrtowc-w32utf8.c b/tests/test-mbrtowc-w32utf8.c
index d68bfa6512..6f970aa0a4 100644
--- a/tests/test-mbrtowc-w32utf8.c
+++ b/tests/test-mbrtowc-w32utf8.c
@@ -47,21 +47,21 @@ main (void)
     char input[] = "B\303\274\303\237er"; /* "B????er" */
     memset (&state, '\0', sizeof (mbstate_t));
 
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, input, 1, &state);
     ASSERT (ret == 1);
     ASSERT (wc == 'B');
     ASSERT (mbsinit (&state));
     input[0] = '\0';
 
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, input + 1, 1, &state);
     ASSERT (ret == (size_t)(-2));
-    ASSERT (wc == 0xBADFACE);
+    ASSERT (wc == (wchar_t) {0xBADFACE});
     ASSERT (!mbsinit (&state));
     input[1] = '\0';
 
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, input + 2, 5, &state);
     ASSERT (ret == 1);
     ASSERT (wctob (wc) == EOF);
@@ -74,7 +74,7 @@ main (void)
     ASSERT (ret == 2);
     ASSERT (mbsinit (&state));
 
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, input + 3, 4, &state);
     ASSERT (ret == 2);
     ASSERT (wctob (wc) == EOF);
@@ -83,14 +83,14 @@ main (void)
     input[3] = '\0';
     input[4] = '\0';
 
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, input + 5, 2, &state);
     ASSERT (ret == 1);
     ASSERT (wc == 'e');
     ASSERT (mbsinit (&state));
     input[5] = '\0';
 
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, input + 6, 1, &state);
     ASSERT (ret == 1);
     ASSERT (wc == 'r');
@@ -98,61 +98,61 @@ main (void)
 
     /* Test some invalid input.  */
     memset (&state, '\0', sizeof (mbstate_t));
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, "\377", 1, &state); /* 0xFF */
     ASSERT (ret == (size_t)-1);
     ASSERT (errno == EILSEQ);
 
     memset (&state, '\0', sizeof (mbstate_t));
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, "\303\300", 2, &state); /* 0xC3 0xC0 */
     ASSERT (ret == (size_t)-1);
     ASSERT (errno == EILSEQ);
 
     memset (&state, '\0', sizeof (mbstate_t));
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, "\343\300", 2, &state); /* 0xE3 0xC0 */
     ASSERT (ret == (size_t)-1);
     ASSERT (errno == EILSEQ);
 
     memset (&state, '\0', sizeof (mbstate_t));
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, "\343\300\200", 3, &state); /* 0xE3 0xC0 0x80 */
     ASSERT (ret == (size_t)-1);
     ASSERT (errno == EILSEQ);
 
     memset (&state, '\0', sizeof (mbstate_t));
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, "\343\200\300", 3, &state); /* 0xE3 0x80 0xC0 */
     ASSERT (ret == (size_t)-1);
     ASSERT (errno == EILSEQ);
 
     memset (&state, '\0', sizeof (mbstate_t));
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, "\363\300", 2, &state); /* 0xF3 0xC0 */
     ASSERT (ret == (size_t)-1);
     ASSERT (errno == EILSEQ);
 
     memset (&state, '\0', sizeof (mbstate_t));
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, "\363\300\200\200", 4, &state); /* 0xF3 0xC0 0x80 0x80 */
     ASSERT (ret == (size_t)-1);
     ASSERT (errno == EILSEQ);
 
     memset (&state, '\0', sizeof (mbstate_t));
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, "\363\200\300", 3, &state); /* 0xF3 0x80 0xC0 */
     ASSERT (ret == (size_t)-1);
     ASSERT (errno == EILSEQ);
 
     memset (&state, '\0', sizeof (mbstate_t));
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, "\363\200\300\200", 4, &state); /* 0xF3 0x80 0xC0 0x80 */
     ASSERT (ret == (size_t)-1);
     ASSERT (errno == EILSEQ);
 
     memset (&state, '\0', sizeof (mbstate_t));
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, "\363\200\200\300", 4, &state); /* 0xF3 0x80 0x80 0xC0 */
     ASSERT (ret == (size_t)-1);
     ASSERT (errno == EILSEQ);
diff --git a/tests/test-mbrtowc.c b/tests/test-mbrtowc.c
index 0851efbbba..3b10e9daed 100644
--- a/tests/test-mbrtowc.c
+++ b/tests/test-mbrtowc.c
@@ -45,7 +45,7 @@ main (int argc, char *argv[])
   /* Test zero-length input.  */
   {
     memset (&state, '\0', sizeof (mbstate_t));
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, "x", 0, &state);
     ASSERT (ret == (size_t)(-2));
     ASSERT (mbsinit (&state));
@@ -54,7 +54,7 @@ main (int argc, char *argv[])
   /* Test NUL byte input.  */
   {
     memset (&state, '\0', sizeof (mbstate_t));
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, "", 1, &state);
     ASSERT (ret == 0);
     ASSERT (wc == 0);
@@ -98,7 +98,7 @@ main (int argc, char *argv[])
           /* c is an ASCII character.  */
           buf[0] = c;
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, buf, 1, &state);
           ASSERT (ret == 1);
           ASSERT (wc == c);
@@ -117,10 +117,10 @@ main (int argc, char *argv[])
   /* Test special calling convention, passing a NULL pointer.  */
   {
     memset (&state, '\0', sizeof (mbstate_t));
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     ret = mbrtowc (&wc, NULL, 5, &state);
     ASSERT (ret == 0);
-    ASSERT (wc == 0xBADFACE);
+    ASSERT (wc == (wchar_t) {0xBADFACE});
     ASSERT (mbsinit (&state));
   }
 
@@ -148,7 +148,7 @@ main (int argc, char *argv[])
                 /* We are testing all nonnull bytes.  */
                 buf[0] = c;
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, buf, 1, &state);
                 /* POSIX:2018 says: "In the POSIX locale an [EILSEQ] error
                    cannot occur since all byte values are valid characters."  */
@@ -175,14 +175,14 @@ main (int argc, char *argv[])
           char input[] = "B\374\337er"; /* "B????er" */
           memset (&state, '\0', sizeof (mbstate_t));
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input, 1, &state);
           ASSERT (ret == 1);
           ASSERT (wc == 'B');
           ASSERT (mbsinit (&state));
           input[0] = '\0';
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 1, 1, &state);
           ASSERT (ret == 1);
           ASSERT (wctob (wc) == (unsigned char) '\374');
@@ -194,21 +194,21 @@ main (int argc, char *argv[])
           ASSERT (ret == 1);
           ASSERT (mbsinit (&state));
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 2, 3, &state);
           ASSERT (ret == 1);
           ASSERT (wctob (wc) == (unsigned char) '\337');
           ASSERT (mbsinit (&state));
           input[2] = '\0';
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 3, 2, &state);
           ASSERT (ret == 1);
           ASSERT (wc == 'e');
           ASSERT (mbsinit (&state));
           input[3] = '\0';
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 4, 1, &state);
           ASSERT (ret == 1);
           ASSERT (wc == 'r');
@@ -222,21 +222,21 @@ main (int argc, char *argv[])
           char input[] = "B\303\274\303\237er"; /* "B????er" */
           memset (&state, '\0', sizeof (mbstate_t));
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input, 1, &state);
           ASSERT (ret == 1);
           ASSERT (wc == 'B');
           ASSERT (mbsinit (&state));
           input[0] = '\0';
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 1, 1, &state);
           ASSERT (ret == (size_t)(-2));
-          ASSERT (wc == 0xBADFACE);
+          ASSERT (wc == (wchar_t) {0xBADFACE});
           ASSERT (!mbsinit (&state));
           input[1] = '\0';
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 2, 5, &state);
           ASSERT (ret == 1);
           ASSERT (wctob (wc) == EOF);
@@ -248,7 +248,7 @@ main (int argc, char *argv[])
           ASSERT (ret == 2);
           ASSERT (mbsinit (&state));
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 3, 4, &state);
           ASSERT (ret == 2);
           ASSERT (wctob (wc) == EOF);
@@ -256,14 +256,14 @@ main (int argc, char *argv[])
           input[3] = '\0';
           input[4] = '\0';
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 5, 2, &state);
           ASSERT (ret == 1);
           ASSERT (wc == 'e');
           ASSERT (mbsinit (&state));
           input[5] = '\0';
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 6, 1, &state);
           ASSERT (ret == 1);
           ASSERT (wc == 'r');
@@ -273,25 +273,25 @@ main (int argc, char *argv[])
           { /* \360\237\220\203 = U+0001F403 */
             memset (&state, '\0', sizeof (mbstate_t));
 
-            wc = 0xBADFACE;
+            wc = (wchar_t) {0xBADFACE};
             ret = mbrtowc (&wc, "\360", 1, &state);
             ASSERT (ret == (size_t)(-2));
-            ASSERT (wc == 0xBADFACE);
+            ASSERT (wc == (wchar_t) {0xBADFACE});
             ASSERT (!mbsinit (&state));
 
-            wc = 0xBADFACE;
+            wc = (wchar_t) {0xBADFACE};
             ret = mbrtowc (&wc, "\237", 1, &state);
             ASSERT (ret == (size_t)(-2));
-            ASSERT (wc == 0xBADFACE);
+            ASSERT (wc == (wchar_t) {0xBADFACE});
             ASSERT (!mbsinit (&state));
 
-            wc = 0xBADFACE;
+            wc = (wchar_t) {0xBADFACE};
             ret = mbrtowc (&wc, "\220", 1, &state);
             ASSERT (ret == (size_t)(-2));
-            ASSERT (wc == 0xBADFACE);
+            ASSERT (wc == (wchar_t) {0xBADFACE});
             ASSERT (!mbsinit (&state));
 
-            wc = 0xBADFACE;
+            wc = (wchar_t) {0xBADFACE};
             ret = mbrtowc (&wc, "\203", 1, &state);
             ASSERT (ret == 1);
             ASSERT (wctob (wc) == EOF);
@@ -305,14 +305,14 @@ main (int argc, char *argv[])
           char input[] = "<\306\374\313\334\270\354>"; /* "<?????????>" */
           memset (&state, '\0', sizeof (mbstate_t));
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input, 1, &state);
           ASSERT (ret == 1);
           ASSERT (wc == '<');
           ASSERT (mbsinit (&state));
           input[0] = '\0';
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 1, 2, &state);
           ASSERT (ret == 2);
           ASSERT (wctob (wc) == EOF);
@@ -320,14 +320,14 @@ main (int argc, char *argv[])
           input[1] = '\0';
           input[2] = '\0';
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 3, 1, &state);
           ASSERT (ret == (size_t)(-2));
-          ASSERT (wc == 0xBADFACE);
+          ASSERT (wc == (wchar_t) {0xBADFACE});
           ASSERT (!mbsinit (&state));
           input[3] = '\0';
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 4, 4, &state);
           ASSERT (ret == 1);
           ASSERT (wctob (wc) == EOF);
@@ -339,7 +339,7 @@ main (int argc, char *argv[])
           ASSERT (ret == 2);
           ASSERT (mbsinit (&state));
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 5, 3, &state);
           ASSERT (ret == 2);
           ASSERT (wctob (wc) == EOF);
@@ -347,7 +347,7 @@ main (int argc, char *argv[])
           input[5] = '\0';
           input[6] = '\0';
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 7, 1, &state);
           ASSERT (ret == 1);
           ASSERT (wc == '>');
@@ -361,21 +361,21 @@ main (int argc, char *argv[])
           char input[] = "B\250\271\201\060\211\070er"; /* "B????er" */
           memset (&state, '\0', sizeof (mbstate_t));
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input, 1, &state);
           ASSERT (ret == 1);
           ASSERT (wc == 'B');
           ASSERT (mbsinit (&state));
           input[0] = '\0';
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 1, 1, &state);
           ASSERT (ret == (size_t)(-2));
-          ASSERT (wc == 0xBADFACE);
+          ASSERT (wc == (wchar_t) {0xBADFACE});
           ASSERT (!mbsinit (&state));
           input[1] = '\0';
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 2, 7, &state);
           ASSERT (ret == 1);
           ASSERT (wctob (wc) == EOF);
@@ -387,7 +387,7 @@ main (int argc, char *argv[])
           ASSERT (ret == 4);
           ASSERT (mbsinit (&state));
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 3, 6, &state);
           ASSERT (ret == 4);
           ASSERT (wctob (wc) == EOF);
@@ -397,14 +397,14 @@ main (int argc, char *argv[])
           input[5] = '\0';
           input[6] = '\0';
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 7, 2, &state);
           ASSERT (ret == 1);
           ASSERT (wc == 'e');
           ASSERT (mbsinit (&state));
           input[7] = '\0';
 
-          wc = 0xBADFACE;
+          wc = (wchar_t) {0xBADFACE};
           ret = mbrtowc (&wc, input + 8, 1, &state);
           ASSERT (ret == 1);
           ASSERT (wc == 'r');
@@ -414,25 +414,25 @@ main (int argc, char *argv[])
           { /* \224\071\311\067 = U+0001F403 */
             memset (&state, '\0', sizeof (mbstate_t));
 
-            wc = 0xBADFACE;
+            wc = (wchar_t) {0xBADFACE};
             ret = mbrtowc (&wc, "\224", 1, &state);
             ASSERT (ret == (size_t)(-2));
-            ASSERT (wc == 0xBADFACE);
+            ASSERT (wc == (wchar_t) {0xBADFACE});
             ASSERT (!mbsinit (&state));
 
-            wc = 0xBADFACE;
+            wc = (wchar_t) {0xBADFACE};
             ret = mbrtowc (&wc, "\071", 1, &state);
             ASSERT (ret == (size_t)(-2));
-            ASSERT (wc == 0xBADFACE);
+            ASSERT (wc == (wchar_t) {0xBADFACE});
             ASSERT (!mbsinit (&state));
 
-            wc = 0xBADFACE;
+            wc = (wchar_t) {0xBADFACE};
             ret = mbrtowc (&wc, "\311", 1, &state);
             ASSERT (ret == (size_t)(-2));
-            ASSERT (wc == 0xBADFACE);
+            ASSERT (wc == (wchar_t) {0xBADFACE});
             ASSERT (!mbsinit (&state));
 
-            wc = 0xBADFACE;
+            wc = (wchar_t) {0xBADFACE};
             ret = mbrtowc (&wc, "\067", 1, &state);
             ASSERT (ret == 1);
             ASSERT (wctob (wc) == EOF);
diff --git a/tests/test-mbsnrtowcs.c b/tests/test-mbsnrtowcs.c
index a2a5262549..13974530cc 100644
--- a/tests/test-mbsnrtowcs.c
+++ b/tests/test-mbsnrtowcs.c
@@ -57,14 +57,14 @@ main (int argc, char *argv[])
     ASSERT (ret == 0);
     ASSERT (mbsinit (&state));
 
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     src = "";
     ret = mbsnrtowcs (&wc, &src, 1, 0, &state);
     ASSERT (ret == 0);
-    ASSERT (wc == 0xBADFACE);
+    ASSERT (wc == (wchar_t) {0xBADFACE});
     ASSERT (mbsinit (&state));
 
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     src = "";
     ret = mbsnrtowcs (&wc, &src, 1, 1, &state);
     ASSERT (ret == 0);
@@ -91,7 +91,7 @@ main (int argc, char *argv[])
           mbstate_t temp_state;
 
           for (size_t i = 0; i < BUFSIZE; i++)
-            buf[i] = 0xBADFACE;
+            buf[i] = (wchar_t) {0xBADFACE};
 
           switch (argv[1][0])
             {
@@ -118,10 +118,10 @@ main (int argc, char *argv[])
                     ASSERT (buf[1] == '/');
                     ASSERT (buf[2] == 'a');
                     ASSERT (buf[3] == 0);
-                    ASSERT (buf[4] == 0xBADFACE);
+                    ASSERT (buf[4] == (wchar_t) {0xBADFACE});
                   }
                 else
-                  ASSERT (buf[1] == 0xBADFACE);
+                  ASSERT (buf[1] == (wchar_t) {0xBADFACE});
                 ASSERT (mbsinit (&state));
               }
               {
@@ -141,7 +141,7 @@ main (int argc, char *argv[])
                       ASSERT (src == input);
                       ASSERT (mbsinit (&state));
 
-                      buf[0] = buf[1] = 0xBADFACE;
+                      buf[0] = buf[1] = (wchar_t) {0xBADFACE};
                       src = input;
                       ret = mbsnrtowcs (buf, &src, 2, unlimited ? BUFSIZE : 1, &state);
                       /* POSIX:2018 says: "In the POSIX locale an [EILSEQ] error
@@ -166,14 +166,14 @@ main (int argc, char *argv[])
                 char input[] = "B\374\337er"; /* "B????er" */
                 memset (&state, '\0', sizeof (mbstate_t));
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input, 1, &state);
                 ASSERT (ret == 1);
                 ASSERT (wc == 'B');
                 ASSERT (mbsinit (&state));
                 input[0] = '\0';
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input + 1, 1, &state);
                 ASSERT (ret == 1);
                 ASSERT (wctob (wc) == (unsigned char) '\374');
@@ -197,10 +197,10 @@ main (int argc, char *argv[])
                     ASSERT (buf[1] == 'e');
                     ASSERT (buf[2] == 'r');
                     ASSERT (buf[3] == 0);
-                    ASSERT (buf[4] == 0xBADFACE);
+                    ASSERT (buf[4] == (wchar_t) {0xBADFACE});
                   }
                 else
-                  ASSERT (buf[1] == 0xBADFACE);
+                  ASSERT (buf[1] == (wchar_t) {0xBADFACE});
                 ASSERT (mbsinit (&state));
               }
               break;
@@ -211,17 +211,17 @@ main (int argc, char *argv[])
                 char input[] = "B\303\274\303\237er"; /* "B????er" */
                 memset (&state, '\0', sizeof (mbstate_t));
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input, 1, &state);
                 ASSERT (ret == 1);
                 ASSERT (wc == 'B');
                 ASSERT (mbsinit (&state));
                 input[0] = '\0';
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input + 1, 1, &state);
                 ASSERT (ret == (size_t)(-2));
-                ASSERT (wc == 0xBADFACE);
+                ASSERT (wc == (wchar_t) {0xBADFACE});
                 ASSERT (!mbsinit (&state));
                 input[1] = '\0';
 
@@ -243,10 +243,10 @@ main (int argc, char *argv[])
                     ASSERT (buf[2] == 'e');
                     ASSERT (buf[3] == 'r');
                     ASSERT (buf[4] == 0);
-                    ASSERT (buf[5] == 0xBADFACE);
+                    ASSERT (buf[5] == (wchar_t) {0xBADFACE});
                   }
                 else
-                  ASSERT (buf[2] == 0xBADFACE);
+                  ASSERT (buf[2] == (wchar_t) {0xBADFACE});
                 ASSERT (mbsinit (&state));
               }
               break;
@@ -257,14 +257,14 @@ main (int argc, char *argv[])
                 char input[] = "<\306\374\313\334\270\354>"; /* "<?????????>" */
                 memset (&state, '\0', sizeof (mbstate_t));
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input, 1, &state);
                 ASSERT (ret == 1);
                 ASSERT (wc == '<');
                 ASSERT (mbsinit (&state));
                 input[0] = '\0';
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input + 1, 2, &state);
                 ASSERT (ret == 2);
                 ASSERT (wctob (wc) == EOF);
@@ -272,10 +272,10 @@ main (int argc, char *argv[])
                 input[1] = '\0';
                 input[2] = '\0';
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input + 3, 1, &state);
                 ASSERT (ret == (size_t)(-2));
-                ASSERT (wc == 0xBADFACE);
+                ASSERT (wc == (wchar_t) {0xBADFACE});
                 ASSERT (!mbsinit (&state));
                 input[3] = '\0';
 
@@ -296,10 +296,10 @@ main (int argc, char *argv[])
                   {
                     ASSERT (buf[2] == '>');
                     ASSERT (buf[3] == 0);
-                    ASSERT (buf[4] == 0xBADFACE);
+                    ASSERT (buf[4] == (wchar_t) {0xBADFACE});
                   }
                 else
-                  ASSERT (buf[2] == 0xBADFACE);
+                  ASSERT (buf[2] == (wchar_t) {0xBADFACE});
                 ASSERT (mbsinit (&state));
               }
               break;
@@ -310,17 +310,17 @@ main (int argc, char *argv[])
                 char input[] = "B\250\271\201\060\211\070er"; /* "B????er" */
                 memset (&state, '\0', sizeof (mbstate_t));
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input, 1, &state);
                 ASSERT (ret == 1);
                 ASSERT (wc == 'B');
                 ASSERT (mbsinit (&state));
                 input[0] = '\0';
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input + 1, 1, &state);
                 ASSERT (ret == (size_t)(-2));
-                ASSERT (wc == 0xBADFACE);
+                ASSERT (wc == (wchar_t) {0xBADFACE});
                 ASSERT (!mbsinit (&state));
                 input[1] = '\0';
 
@@ -342,10 +342,10 @@ main (int argc, char *argv[])
                     ASSERT (buf[2] == 'e');
                     ASSERT (buf[3] == 'r');
                     ASSERT (buf[4] == 0);
-                    ASSERT (buf[5] == 0xBADFACE);
+                    ASSERT (buf[5] == (wchar_t) {0xBADFACE});
                   }
                 else
-                  ASSERT (buf[2] == 0xBADFACE);
+                  ASSERT (buf[2] == (wchar_t) {0xBADFACE});
                 ASSERT (mbsinit (&state));
               }
               break;
diff --git a/tests/test-mbsrtowcs.c b/tests/test-mbsrtowcs.c
index 84bf72ed43..13aa7969a0 100644
--- a/tests/test-mbsrtowcs.c
+++ b/tests/test-mbsrtowcs.c
@@ -57,14 +57,14 @@ main (int argc, char *argv[])
     ASSERT (ret == 0);
     ASSERT (mbsinit (&state));
 
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     src = "";
     ret = mbsrtowcs (&wc, &src, 0, &state);
     ASSERT (ret == 0);
-    ASSERT (wc == 0xBADFACE);
+    ASSERT (wc == (wchar_t) {0xBADFACE});
     ASSERT (mbsinit (&state));
 
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     src = "";
     ret = mbsrtowcs (&wc, &src, 1, &state);
     ASSERT (ret == 0);
@@ -91,7 +91,7 @@ main (int argc, char *argv[])
           mbstate_t temp_state;
 
           for (size_t i = 0; i < BUFSIZE; i++)
-            buf[i] = 0xBADFACE;
+            buf[i] = (wchar_t) {0xBADFACE};
 
           switch (argv[1][0])
             {
@@ -118,10 +118,10 @@ main (int argc, char *argv[])
                     ASSERT (buf[1] == '/');
                     ASSERT (buf[2] == 'a');
                     ASSERT (buf[3] == 0);
-                    ASSERT (buf[4] == 0xBADFACE);
+                    ASSERT (buf[4] == (wchar_t) {0xBADFACE});
                   }
                 else
-                  ASSERT (buf[1] == 0xBADFACE);
+                  ASSERT (buf[1] == (wchar_t) {0xBADFACE});
                 ASSERT (mbsinit (&state));
               }
               {
@@ -141,7 +141,7 @@ main (int argc, char *argv[])
                       ASSERT (src == input);
                       ASSERT (mbsinit (&state));
 
-                      buf[0] = buf[1] = 0xBADFACE;
+                      buf[0] = buf[1] = (wchar_t) {0xBADFACE};
                       src = input;
                       ret = mbsrtowcs (buf, &src, unlimited ? BUFSIZE : 1, &state);
                       /* POSIX:2018 says: "In the POSIX locale an [EILSEQ] error
@@ -166,14 +166,14 @@ main (int argc, char *argv[])
                 char input[] = "B\374\337er"; /* "B????er" */
                 memset (&state, '\0', sizeof (mbstate_t));
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input, 1, &state);
                 ASSERT (ret == 1);
                 ASSERT (wc == 'B');
                 ASSERT (mbsinit (&state));
                 input[0] = '\0';
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input + 1, 1, &state);
                 ASSERT (ret == 1);
                 ASSERT (wctob (wc) == (unsigned char) '\374');
@@ -197,10 +197,10 @@ main (int argc, char *argv[])
                     ASSERT (buf[1] == 'e');
                     ASSERT (buf[2] == 'r');
                     ASSERT (buf[3] == 0);
-                    ASSERT (buf[4] == 0xBADFACE);
+                    ASSERT (buf[4] == (wchar_t) {0xBADFACE});
                   }
                 else
-                  ASSERT (buf[1] == 0xBADFACE);
+                  ASSERT (buf[1] == (wchar_t) {0xBADFACE});
                 ASSERT (mbsinit (&state));
               }
               break;
@@ -211,17 +211,17 @@ main (int argc, char *argv[])
                 char input[] = "B\303\274\303\237er"; /* "B????er" */
                 memset (&state, '\0', sizeof (mbstate_t));
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input, 1, &state);
                 ASSERT (ret == 1);
                 ASSERT (wc == 'B');
                 ASSERT (mbsinit (&state));
                 input[0] = '\0';
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input + 1, 1, &state);
                 ASSERT (ret == (size_t)(-2));
-                ASSERT (wc == 0xBADFACE);
+                ASSERT (wc == (wchar_t) {0xBADFACE});
                 ASSERT (!mbsinit (&state));
                 input[1] = '\0';
 
@@ -243,10 +243,10 @@ main (int argc, char *argv[])
                     ASSERT (buf[2] == 'e');
                     ASSERT (buf[3] == 'r');
                     ASSERT (buf[4] == 0);
-                    ASSERT (buf[5] == 0xBADFACE);
+                    ASSERT (buf[5] == (wchar_t) {0xBADFACE});
                   }
                 else
-                  ASSERT (buf[2] == 0xBADFACE);
+                  ASSERT (buf[2] == (wchar_t) {0xBADFACE});
                 ASSERT (mbsinit (&state));
               }
               break;
@@ -257,14 +257,14 @@ main (int argc, char *argv[])
                 char input[] = "<\306\374\313\334\270\354>"; /* "<?????????>" */
                 memset (&state, '\0', sizeof (mbstate_t));
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input, 1, &state);
                 ASSERT (ret == 1);
                 ASSERT (wc == '<');
                 ASSERT (mbsinit (&state));
                 input[0] = '\0';
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input + 1, 2, &state);
                 ASSERT (ret == 2);
                 ASSERT (wctob (wc) == EOF);
@@ -272,10 +272,10 @@ main (int argc, char *argv[])
                 input[1] = '\0';
                 input[2] = '\0';
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input + 3, 1, &state);
                 ASSERT (ret == (size_t)(-2));
-                ASSERT (wc == 0xBADFACE);
+                ASSERT (wc == (wchar_t) {0xBADFACE});
                 ASSERT (!mbsinit (&state));
                 input[3] = '\0';
 
@@ -296,10 +296,10 @@ main (int argc, char *argv[])
                   {
                     ASSERT (buf[2] == '>');
                     ASSERT (buf[3] == 0);
-                    ASSERT (buf[4] == 0xBADFACE);
+                    ASSERT (buf[4] == (wchar_t) {0xBADFACE});
                   }
                 else
-                  ASSERT (buf[2] == 0xBADFACE);
+                  ASSERT (buf[2] == (wchar_t) {0xBADFACE});
                 ASSERT (mbsinit (&state));
               }
               break;
@@ -310,17 +310,17 @@ main (int argc, char *argv[])
                 char input[] = "B\250\271\201\060\211\070er"; /* "B????er" */
                 memset (&state, '\0', sizeof (mbstate_t));
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input, 1, &state);
                 ASSERT (ret == 1);
                 ASSERT (wc == 'B');
                 ASSERT (mbsinit (&state));
                 input[0] = '\0';
 
-                wc = 0xBADFACE;
+                wc = (wchar_t) {0xBADFACE};
                 ret = mbrtowc (&wc, input + 1, 1, &state);
                 ASSERT (ret == (size_t)(-2));
-                ASSERT (wc == 0xBADFACE);
+                ASSERT (wc == (wchar_t) {0xBADFACE});
                 ASSERT (!mbsinit (&state));
                 input[1] = '\0';
 
@@ -342,10 +342,10 @@ main (int argc, char *argv[])
                     ASSERT (buf[2] == 'e');
                     ASSERT (buf[3] == 'r');
                     ASSERT (buf[4] == 0);
-                    ASSERT (buf[5] == 0xBADFACE);
+                    ASSERT (buf[5] == (wchar_t) {0xBADFACE});
                   }
                 else
-                  ASSERT (buf[2] == 0xBADFACE);
+                  ASSERT (buf[2] == (wchar_t) {0xBADFACE});
                 ASSERT (mbsinit (&state));
               }
               break;
diff --git a/tests/test-mbstowcs.c b/tests/test-mbstowcs.c
index 21fbc51bea..e6c2db48c8 100644
--- a/tests/test-mbstowcs.c
+++ b/tests/test-mbstowcs.c
@@ -52,13 +52,13 @@ main (int argc, char *argv[])
     ret = mbstowcs (NULL, src, 1);
     ASSERT (ret == 0);
 
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     src = "";
     ret = mbstowcs (&wc, src, 0);
     ASSERT (ret == 0);
-    ASSERT (wc == 0xBADFACE);
+    ASSERT (wc == (wchar_t) {0xBADFACE});
 
-    wc = 0xBADFACE;
+    wc = (wchar_t) {0xBADFACE};
     src = "";
     ret = mbstowcs (&wc, src, 1);
     ASSERT (ret == 0);
@@ -83,7 +83,7 @@ main (int argc, char *argv[])
           const char *src;
 
           for (size_t i = 0; i < BUFSIZE; i++)
-            buf[i] = 0xBADFACE;
+            buf[i] = (wchar_t) {0xBADFACE};
 
           switch (argv[1][0])
             {
@@ -105,10 +105,10 @@ main (int argc, char *argv[])
                     ASSERT (buf[1] == '/');
                     ASSERT (buf[2] == 'a');
                     ASSERT (buf[3] == 0);
-                    ASSERT (buf[4] == 0xBADFACE);
+                    ASSERT (buf[4] == (wchar_t) {0xBADFACE});
                   }
                 else
-                  ASSERT (buf[1] == 0xBADFACE);
+                  ASSERT (buf[1] == (wchar_t) {0xBADFACE});
               }
               {
                 char input[2];
@@ -124,7 +124,7 @@ main (int argc, char *argv[])
                       ret = mbstowcs (NULL, src, unlimited ? BUFSIZE : 1);
                       ASSERT (ret == 1);
 
-                      buf[0] = buf[1] = 0xBADFACE;
+                      buf[0] = buf[1] = (wchar_t) {0xBADFACE};
                       src = input;
                       ret = mbstowcs (buf, src, unlimited ? BUFSIZE : 1);
                       /* POSIX:2018 says: "In the POSIX locale an [EILSEQ] error
@@ -160,10 +160,10 @@ main (int argc, char *argv[])
                     ASSERT (buf[2] == 'e');
                     ASSERT (buf[3] == 'r');
                     ASSERT (buf[4] == 0);
-                    ASSERT (buf[5] == 0xBADFACE);
+                    ASSERT (buf[5] == (wchar_t) {0xBADFACE});
                   }
                 else
-                  ASSERT (buf[1] == 0xBADFACE);
+                  ASSERT (buf[1] == (wchar_t) {0xBADFACE});
               }
               break;
 
@@ -186,10 +186,10 @@ main (int argc, char *argv[])
                     ASSERT (buf[2] == 'e');
                     ASSERT (buf[3] == 'r');
                     ASSERT (buf[4] == 0);
-                    ASSERT (buf[5] == 0xBADFACE);
+                    ASSERT (buf[5] == (wchar_t) {0xBADFACE});
                   }
                 else
-                  ASSERT (buf[2] == 0xBADFACE);
+                  ASSERT (buf[2] == (wchar_t) {0xBADFACE});
               }
               break;
 
@@ -212,10 +212,10 @@ main (int argc, char *argv[])
                   {
                     ASSERT (buf[3] == '>');
                     ASSERT (buf[4] == 0);
-                    ASSERT (buf[5] == 0xBADFACE);
+                    ASSERT (buf[5] == (wchar_t) {0xBADFACE});
                   }
                 else
-                  ASSERT (buf[3] == 0xBADFACE);
+                  ASSERT (buf[3] == (wchar_t) {0xBADFACE});
               }
               break;
 
@@ -238,10 +238,10 @@ main (int argc, char *argv[])
                     ASSERT (buf[2] == 'e');
                     ASSERT (buf[3] == 'r');
                     ASSERT (buf[4] == 0);
-                    ASSERT (buf[5] == 0xBADFACE);
+                    ASSERT (buf[5] == (wchar_t) {0xBADFACE});
                   }
                 else
-                  ASSERT (buf[1] == 0xBADFACE);
+                  ASSERT (buf[1] == (wchar_t) {0xBADFACE});
               }
               break;
 
diff --git a/tests/test-snprintf-posix.h b/tests/test-snprintf-posix.h
index 074cd2595b..d7a3b4eda2 100644
--- a/tests/test-snprintf-posix.h
+++ b/tests/test-snprintf-posix.h
@@ -3162,7 +3162,7 @@ test_function (int (*my_snprintf) (char *, size_t, const char *, ...))
     ASSERT (retval == 6);
   }
 
-  static wint_t L_invalid = 0x76543210;
+  const wint_t L_invalid = (wchar_t) {0x76543210};
 
   { /* Invalid wide character.
        The conversion may succeed or may fail, but it should not abort.  */
diff --git a/tests/test-sprintf-posix.h b/tests/test-sprintf-posix.h
index d82c2892b9..40d4be65c6 100644
--- a/tests/test-sprintf-posix.h
+++ b/tests/test-sprintf-posix.h
@@ -3145,7 +3145,7 @@ test_function (int (*my_sprintf) (char *, const char *, ...))
     ASSERT (retval == 6);
   }
 
-  static wint_t L_invalid = 0x76543210;
+  const wint_t L_invalid = (wchar_t) {0x76543210};
 
   { /* Invalid wide character.
        The conversion may succeed or may fail, but it should not abort.  */
diff --git a/tests/test-towctrans.c b/tests/test-towctrans.c
index d05f63f71f..e36f74e293 100644
--- a/tests/test-towctrans.c
+++ b/tests/test-towctrans.c
@@ -42,7 +42,7 @@ main (int argc, char *argv[])
   ASSERT (towctrans (L'1', desc) == '1');
   ASSERT (towctrans (L'_', desc) == '_');
   ASSERT (towctrans (L'_', desc) == '_');
-  ASSERT (towctrans (L'\0', desc) == 0);
+  ASSERT (towctrans ((wchar_t) {0}, desc) == 0);
   ASSERT (towctrans (WEOF, desc) == WEOF);
 
   desc = wctrans ("toupper");
@@ -53,7 +53,7 @@ main (int argc, char *argv[])
   ASSERT (towctrans (L'z', desc) == 'Z');
   ASSERT (towctrans (L'1', desc) == '1');
   ASSERT (towctrans (L'_', desc) == '_');
-  ASSERT (towctrans (L'\0', desc) == 0);
+  ASSERT (towctrans ((wchar_t) {0}, desc) == 0);
   ASSERT (towctrans (WEOF, desc) == WEOF);
 
   return test_exit_status;
diff --git a/tests/test-vasnprintf-posix.c b/tests/test-vasnprintf-posix.c
index 5df21c38a6..fe0a59d647 100644
--- a/tests/test-vasnprintf-posix.c
+++ b/tests/test-vasnprintf-posix.c
@@ -3949,7 +3949,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
 
   /* Test that converting an invalid wchar_t[] to char[] fails with EILSEQ.  */
   {
-    static const wchar_t input[] = { 1702057263, 114, 0 };
+    const wchar_t input[] = { (wchar_t) {1702057263}, 114, 0 };
     size_t length;
     char *result = my_asnprintf (NULL, &length, "%ls %d", input, 99);
     if (result == NULL)
@@ -3958,7 +3958,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
       free (result);
   }
   {
-    static const wchar_t input[] = { 1702057263, 114, 0 };
+    const wchar_t input[] = { (wchar_t) {1702057263}, 114, 0 };
     size_t length;
     char *result = my_asnprintf (NULL, &length, "%3ls %d", input, 99);
     if (result == NULL)
@@ -3967,7 +3967,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
       free (result);
   }
   {
-    static const wchar_t input[] = { 1702057263, 114, 0 };
+    const wchar_t input[] = { (wchar_t) {1702057263}, 114, 0 };
     size_t length;
     char *result = my_asnprintf (NULL, &length, "%.1ls %d", input, 99);
     if (result == NULL)
@@ -3976,7 +3976,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
       free (result);
   }
   {
-    static const wchar_t input[] = { 1702057263, 114, 0 };
+    const wchar_t input[] = { (wchar_t) {1702057263}, 114, 0 };
     size_t length;
     char *result = my_asnprintf (NULL, &length, "%3.1ls %d", input, 99);
     if (result == NULL)
@@ -4117,7 +4117,7 @@ test_function (char * (*my_asnprintf) (char *, size_t *, const char *, ...))
     free (result);
   }
 
-  static wint_t L_invalid = 0x76543210;
+  const wint_t L_invalid = (wchar_t) {0x76543210};
 
   { /* Invalid wide character.
        The conversion may succeed or may fail, but it should not abort.  */
diff --git a/tests/test-vasnwprintf-posix.c b/tests/test-vasnwprintf-posix.c
index fcd385b2c4..d1b3d6e0bb 100644
--- a/tests/test-vasnwprintf-posix.c
+++ b/tests/test-vasnwprintf-posix.c
@@ -3982,7 +3982,7 @@ test_function (wchar_t * (*my_asnwprintf) (wchar_t *, size_t *, const wchar_t *,
 
   /* Test that converting an invalid wchar_t[] to char[] fails with EILSEQ.  */
   {
-    static const wchar_t input[] = { 1702057263, 114, 0 };
+    const wchar_t input[] = { (wchar_t) {1702057263}, 114, 0 };
     size_t length;
     wchar_t *result = my_asnwprintf (NULL, &length, L"%ls %d", input, 99);
     if (result == NULL)
@@ -3991,7 +3991,7 @@ test_function (wchar_t * (*my_asnwprintf) (wchar_t *, size_t *, const wchar_t *,
       free (result);
   }
   {
-    static const wchar_t input[] = { 1702057263, 114, 0 };
+    const wchar_t input[] = { (wchar_t) {1702057263}, 114, 0 };
     size_t length;
     wchar_t *result = my_asnwprintf (NULL, &length, L"%3ls %d", input, 99);
     if (result == NULL)
@@ -4000,7 +4000,7 @@ test_function (wchar_t * (*my_asnwprintf) (wchar_t *, size_t *, const wchar_t *,
       free (result);
   }
   {
-    static const wchar_t input[] = { 1702057263, 114, 0 };
+    const wchar_t input[] = { (wchar_t) {1702057263}, 114, 0 };
     size_t length;
     wchar_t *result = my_asnwprintf (NULL, &length, L"%.1ls %d", input, 99);
     if (result == NULL)
@@ -4009,7 +4009,7 @@ test_function (wchar_t * (*my_asnwprintf) (wchar_t *, size_t *, const wchar_t *,
       free (result);
   }
   {
-    static const wchar_t input[] = { 1702057263, 114, 0 };
+    const wchar_t input[] = { (wchar_t) {1702057263}, 114, 0 };
     size_t length;
     wchar_t *result = my_asnwprintf (NULL, &length, L"%3.1ls %d", input, 99);
     if (result == NULL)
@@ -4162,7 +4162,7 @@ test_function (wchar_t * (*my_asnwprintf) (wchar_t *, size_t *, const wchar_t *,
     free (result);
   }
 
-  static wint_t L_invalid = 0x76543210;
+  const wint_t L_invalid = (wchar_t) {0x76543210};
 
   { /* Invalid wide character.  */
     size_t length;
@@ -4171,7 +4171,7 @@ test_function (wchar_t * (*my_asnwprintf) (wchar_t *, size_t *, const wchar_t *,
     /* No failure is allowed: ISO C says "the wint_t argument is converted
        to wchar_t and written."  */
     ASSERT (result != NULL);
-    ASSERT (result[0] == 0x76543210);
+    ASSERT (result[0] == (wchar_t) {0x76543210});
     ASSERT (wmemcmp (result + 1, L" 33\0", 3 + 1) == 0);
     ASSERT (length == 4);
     free (result);
@@ -4185,7 +4185,7 @@ test_function (wchar_t * (*my_asnwprintf) (wchar_t *, size_t *, const wchar_t *,
        to wchar_t and written."  */
     ASSERT (result != NULL);
     ASSERT (wmemcmp (result, L"         ", 9) == 0);
-    ASSERT (result[9] == 0x76543210);
+    ASSERT (result[9] == (wchar_t) {0x76543210});
     ASSERT (wmemcmp (result + 10, L" 33\0", 3 + 1) == 0);
     ASSERT (length == 13);
     free (result);
diff --git a/tests/test-vasprintf-posix.c b/tests/test-vasprintf-posix.c
index 4ca2654167..6d62468cce 100644
--- a/tests/test-vasprintf-posix.c
+++ b/tests/test-vasprintf-posix.c
@@ -4057,7 +4057,7 @@ test_function (int (*my_asprintf) (char **, const char *, ...))
     free (result);
   }
 
-  static wint_t L_invalid = 0x76543210;
+  const wint_t L_invalid = (wchar_t) {0x76543210};
 
   { /* Invalid wide character.
        The conversion may succeed or may fail, but it should not abort.  */
diff --git a/tests/test-wcrtomb.c b/tests/test-wcrtomb.c
index ff347b9f1f..7fea9cb914 100644
--- a/tests/test-wcrtomb.c
+++ b/tests/test-wcrtomb.c
@@ -38,7 +38,7 @@ check_character (const char *s, size_t n)
   int iret;
   size_t ret;
 
-  wc = 0xBADFACE;
+  wc = (wchar_t) {0xBADFACE};
   iret = mbtowc (&wc, s, n);
   ASSERT (iret == n);
 
diff --git a/tests/test-wcscmp.c b/tests/test-wcscmp.c
index 3512b14662..a40821614a 100644
--- a/tests/test-wcscmp.c
+++ b/tests/test-wcscmp.c
@@ -70,8 +70,8 @@ main (int argc, char *argv[])
         subclause order two wide characters the same way as two integers of
         the underlying integer type designated by wchar_t."  */
   {
-    static const wchar_t input1[] = { 0x76547654, 0 };
-    static const wchar_t input2[] = { 0x9abc9abc, 0 };
+    const wchar_t input1[] = { (wchar_t) {0x76547654}, 0 };
+    const wchar_t input2[] = { (wchar_t) {0x9abc9abc}, 0 };
     if ((wchar_t) {-1} < 0)
       {
         /* wchar_t is signed.  */
@@ -86,8 +86,8 @@ main (int argc, char *argv[])
       }
   }
   {
-    static const wchar_t input1[] = { (wchar_t) 0x9abc9abc, 0 };
-    static const wchar_t input2[] = { (wchar_t) 0x9bdf9bdf, 0 };
+    const wchar_t input1[] = { (wchar_t) {0x9abc9abc}, 0 };
+    const wchar_t input2[] = { (wchar_t) {0x9bdf9bdf}, 0 };
     ASSERT (wcscmp (input1, input2) < 0);
     ASSERT (wcscmp (input2, input1) > 0);
   }
@@ -102,8 +102,8 @@ main (int argc, char *argv[])
      This means that the comparison extends up to and *including* the first
      null wchar_t.  */
   {
-    static const wchar_t input1[] = { L'x', 0 };
-    static const wchar_t input2[] = { L'x', 0x9abc9abc, 0 };
+    const wchar_t input1[] = { (wchar_t) {'x'}, 0 };
+    const wchar_t input2[] = { (wchar_t) {'x'}, (wchar_t) {0x9abc9abc}, 0 };
     if ((wchar_t) {-1} < 0)
       {
         /* wchar_t is signed.  */
diff --git a/tests/test-wcsncmp.c b/tests/test-wcsncmp.c
index cc41aed8c2..c43ce8273c 100644
--- a/tests/test-wcsncmp.c
+++ b/tests/test-wcsncmp.c
@@ -118,8 +118,8 @@ main (int argc, char *argv[])
         subclause order two wide characters the same way as two integers of
         the underlying integer type designated by wchar_t."  */
   {
-    static const wchar_t input1[] = { 0x76547654, 0 };
-    static const wchar_t input2[] = { 0x9abc9abc, 0 };
+    const wchar_t input1[] = { (wchar_t) {0x76547654}, 0 };
+    const wchar_t input2[] = { (wchar_t) {0x9abc9abc}, 0 };
     ASSERT (wcsncmp (input1, input2, 0) == 0);
     if ((wchar_t) {-1} < 0)
       {
@@ -143,8 +143,8 @@ main (int argc, char *argv[])
       }
   }
   {
-    static const wchar_t input1[] = { (wchar_t) 0x9abc9abc, 0 };
-    static const wchar_t input2[] = { (wchar_t) 0x9bdf9bdf, 0 };
+    const wchar_t input1[] = { (wchar_t) {0x9abc9abc}, 0 };
+    const wchar_t input2[] = { (wchar_t) {0x9bdf9bdf}, 0 };
     ASSERT (wcsncmp (input1, input2, 0) == 0);
     ASSERT (wcsncmp (input1, input2, 1) < 0);
     ASSERT (wcsncmp (input2, input1, 1) > 0);
@@ -164,8 +164,8 @@ main (int argc, char *argv[])
      This means that the comparison extends up to and *including* the first
      null wchar_t.  */
   {
-    static const wchar_t input1[] = { L'x', 0 };
-    static const wchar_t input2[] = { L'x', 0x9abc9abc, 0 };
+    const wchar_t input1[] = { (wchar_t) {'x'}, 0 };
+    const wchar_t input2[] = { (wchar_t) {'x'}, (wchar_t) {0x9abc9abc}, 0 };
     ASSERT (wcsncmp (input1, input2, 0) == 0);
     ASSERT (wcsncmp (input1, input2, 1) == 0);
     if ((wchar_t) {-1} < 0)
diff --git a/tests/test-wmemcmp.c b/tests/test-wmemcmp.c
index 5c969ef1ac..6b7564659d 100644
--- a/tests/test-wmemcmp.c
+++ b/tests/test-wmemcmp.c
@@ -80,8 +80,8 @@ main (int argc, char *argv[])
         subclause order two wide characters the same way as two integers of
         the underlying integer type designated by wchar_t."  */
   {
-    static const wchar_t input1[] = { 0x76547654 };
-    static const wchar_t input2[] = { 0x9abc9abc };
+    const wchar_t input1[] = { (wchar_t) {0x76547654} };
+    const wchar_t input2[] = { (wchar_t) {0x9abc9abc} };
     if ((wchar_t) {-1} < 0)
       {
         /* wchar_t is signed.  */
@@ -96,8 +96,8 @@ main (int argc, char *argv[])
       }
   }
   {
-    static const wchar_t input1[] = { (wchar_t) 0x9abc9abc };
-    static const wchar_t input2[] = { (wchar_t) 0x9bdf9bdf };
+    const wchar_t input1[] = { (wchar_t) {0x9abc9abc} };
+    const wchar_t input2[] = { (wchar_t) {0x9bdf9bdf} };
     ASSERT (wmemcmp (input1, input2, 1) < 0);
     ASSERT (wmemcmp (input2, input1, 1) > 0);
   }
-- 
2.54.0

Reply via email to