This avoids a runtime error from Clang's annoying -fsanitize=integer (even though it's not undefined and behaves correctly).
libstdc++-v3/ChangeLog: PR libstdc++/119429 * include/std/format (__format::_Scanner::_Scanner): Cast default argument to size_t. --- Tested x86_64-linux. Reluctantly pushed to trunk. I continue to dislike this sanitizer. libstdc++-v3/include/std/format | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libstdc++-v3/include/std/format b/libstdc++-v3/include/std/format index 1b38913359d..c3327e1d384 100644 --- a/libstdc++-v3/include/std/format +++ b/libstdc++-v3/include/std/format @@ -4051,7 +4051,7 @@ namespace __format } _M_pc; constexpr explicit - _Scanner(basic_string_view<_CharT> __str, size_t __nargs = -1) + _Scanner(basic_string_view<_CharT> __str, size_t __nargs = (size_t)-1) : _M_pc(__str, __nargs) { } -- 2.49.0