https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119037
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Most likely max_size in std::basic_string should be something like: ``` /// Returns the size() of the largest possible %string. _GLIBCXX_NODISCARD _GLIBCXX20_CONSTEXPR size_type max_size() const _GLIBCXX_NOEXCEPT { const size_t __diffmax = __gnu_cxx::__numeric_traits<ptrdiff_t>::__max / sizeof(_CharT); const size_t __allocmax = _Alloc_traits::max_size(_M_get_allocator()); return (std::max)(_S_local_capacity, (std::min)(__diffmax, __allocmax)) - 1; } ``` That is taking into account the _S_local_capacity which does not need to call the allocator.