mirror of
https://gcc.gnu.org/git/gcc.git
synced 2026-02-22 03:46:53 -05:00
These compare overloads throw when the pos index is out of range, not
only when the const T& parameter throws on conversion to string_view.
Remove the incorrect conditional noexcept-specifier from the two
overloads that can throw.
libstdc++-v3/ChangeLog:
PR libstdc++/123991
* include/bits/basic_string.h (compare(size_type, size_type, T)):
Remove noexcept-specifier.
(compare(size_type, size_type, T, size_type, size_type)):
Likewise.
* include/bits/cow_string.h (compare(size_type, size_type, T)):
Remove noexcept-specifier.
(compare(size_type, size_type, T, size_type, size_type)):
Likewise.
* testsuite/21_strings/basic_string/operations/compare/char/123991.cc:
New test.
* testsuite/21_strings/basic_string/operations/compare/wchar_t/123991.cc:
New test.
Reviewed-by: Nathan Myers <nmyers@redhat.com>
(cherry picked from commit 0912dfcd1e)