Re: N3322 functionality tests

Bruno Haible via Gnulib discussion list <[email protected]>
Newsgroups gmane.comp.lib.gnulib.bugs
Message-ID <4596457.bqPgKRP4r2@cagnes>
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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.