The __throw_out_of_range_fmt function works like fprintf and so the
arguments corresponding to %zu specifiers need to be size_t. The
std::basic_string<C,T,A>::size_type type is A::size_type which is not
necessarily size_t. Add explicit casts to avoid a -Wformat warning with
-Wsystem-headers.
libstdc++-v3/ChangeLog:
* include/bits/basic_string.h (basic_string::_M_check): Cast
size_type arguments to size_t.
if (__pos > this->size())
__throw_out_of_range_fmt(__N("%s: __pos (which is %zu) > "
"this->size() (which is %zu)"),
- __s, __pos, this->size());
+ __s, (size_t)__pos, (size_t)this->size());
return __pos;
}