Done. The 2nd Changelog entry as committed is * include/bits/basic_string.tcc (reserve): Guard __limit decl under #if __cpp_exceptions to quiet warning
On 5/20/26 2:56 AM, Jonathan Wakely wrote:
On Wed, 20 May 2026, 01:06 Nathan Myers, <[email protected] <mailto:[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
