On Wed, 20 May 2026, 01:06 Nathan Myers, <[email protected]> wrote:

> Patch build failures from 2026-05-19 09:33:58
>
> libstdc++-v3/Changelog:
>         * config/abi/pre/gnu.ver: Remove recent symbol swept up in
>         GLIBCXX_3.4.21.
>         * include/bits/basic_string.tcc (reserve): Guard __limit decl
>         under #ifdef __glibcxx_allocate_at_least to quiet warning.
>


It was already guarded under that macro, shouldn't this be __cpp_exceptions?

OK either way, since this needs to be fixed.


---
>  libstdc++-v3/config/abi/pre/gnu.ver        |  2 +-
>  libstdc++-v3/include/bits/basic_string.tcc | 14 ++++++++------
>  2 files changed, 9 insertions(+), 7 deletions(-)
>
> diff --git a/libstdc++-v3/config/abi/pre/gnu.ver
> b/libstdc++-v3/config/abi/pre/gnu.ver
> index bf4d7338cb6..3a6afac8308 100644
> --- a/libstdc++-v3/config/abi/pre/gnu.ver
> +++ b/libstdc++-v3/config/abi/pre/gnu.ver
> @@ -1775,7 +1775,7 @@ GLIBCXX_3.4.21 {
>
>  
> _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE12_M_constructI[NP]*;
>      _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE13*;
>
>  
> _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE14_M_replace_aux*;
> -
> _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE1[68-9]*;
> +    _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE1[68]*;
>      _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE2at*;
>      _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE3end*;
>      _ZNSt7__cxx1112basic_stringI[cw]St11char_traitsI[cw]ESaI[cw]EE4back*;
> diff --git a/libstdc++-v3/include/bits/basic_string.tcc
> b/libstdc++-v3/include/bits/basic_string.tcc
> index 5f83991db83..64c99fbb9d6 100644
> --- a/libstdc++-v3/include/bits/basic_string.tcc
> +++ b/libstdc++-v3/include/bits/basic_string.tcc
> @@ -433,11 +433,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>        if (_M_is_local())
>         return;
>
> -#ifdef __glibcxx_allocate_at_least  // C++23
> -      const size_type __limit = (__STDCPP_DEFAULT_NEW_ALIGNMENT__ - 1) /
> sizeof(_CharT);
> -#else
> -      const size_type __limit = 0;
> -#endif
>        const size_type __length = length();
>        const size_type __capacity = _M_allocated_capacity;
>
> @@ -447,9 +442,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
>           this->_S_copy(_M_local_buf, _M_data(), __length + 1);
>           _M_destroy(__capacity);
>           _M_data(_M_local_data());
> +         return;
>         }
>  #if __cpp_exceptions
> -      else if (__capacity - __length > __limit )
> +#ifdef __glibcxx_allocate_at_least  // C++23
> +      const size_type __limit =
> +       (__STDCPP_DEFAULT_NEW_ALIGNMENT__ - 1) / sizeof(_CharT);
> +#else
> +      const size_type __limit = 0;
> +#endif
> +      if (__capacity - __length > __limit )
>         try
>           {
>             _Alloc_result __r = _S_allocate_at_least(
> --
> 2.54.0
>
>

Reply via email to