The multiplatform CI reports a test failure:
FAIL: test-mbsnlen.sh
=====================
../../gllib/mbsnlen.c:40:39: runtime error: applying zero offset to null pointer
SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior
../../gllib/mbsnlen.c:40:39 in
Aborted (core dumped)
FAIL test-mbsnlen.sh (exit status: 134)
This is another instance of NULL + 0, that is
- forbidden by ISO C 23 6.5.6.(9) / 6.5.7.(9)
- but retroactively allowed by N3322
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3322.pdf
"Retroactive" does not mean now [1].
But after our discussion in December 2023 [2] I had opened a clang bug [3],
and it is fixed in clang 20 or newer. So, I'm now switching the CI's
sanitizer testing to clang 20 or newer, and that test failure is gone.
Bruno
[1] https://lists.gnu.org/archive/html/bug-gnulib/2026-07/msg00211.html
[2] https://lists.gnu.org/archive/html/bug-gnulib/2023-12/msg00061.html
[3] https://github.com/llvm/llvm-project/issues/113062