[Bug libstdc++/119429] size_t __nargs = -1 in std::format

desmond.rhodes at outlook dot com gcc-bugzilla@gcc.gnu.org
Sat Mar 22 23:09:54 GMT 2025


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119429

--- Comment #17 from Desmond Rhodes <desmond.rhodes at outlook dot com> ---

Anyway, I've found a way to disable UBSan `-fsanitize=integer` for the
libstd++.

If I make the file `ignorelist.txt`:

```
#!special-case-list-v1

[integer]
# src:.*gcc.*include.*c\+\+.*
```

And then compile with:

```
clang++ -std=c++23 -fsanitize=integer -fno-sanitize-recover=all
-fsanitize-ignorelist=ignorelist.txt example.cc -o example
```

The `UndefinedBehaviorSanitizer` is no longer getting triggered, or being
injected into the libstdc++ code for that matter.

This is because the ignorelist regex will match with:

```
/usr/lib/gcc/x86_64-linux-gnu/14/../../../../include/c++/14/format
```

Or basically any other libstdc++ headers.


More information about the Gcc-bugs mailing list