]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: Fix incorrect noexcept on string::compare overloads [PR123991]
authorJonathan Wakely <jwakely@redhat.com>
Mon, 9 Feb 2026 10:48:44 +0000 (10:48 +0000)
committerJonathan Wakely <redi@gcc.gnu.org>
Tue, 10 Feb 2026 10:05:30 +0000 (10:05 +0000)
commit0912dfcd1e901d7dc1ff5e10528eefe3f3ff7b22
tree7fc5aa1438a1c15b52397174b77140a0028e0f5d
parent4d2af0735063ab7d38c4da0ec6f992276af855af
libstdc++: Fix incorrect noexcept on string::compare overloads [PR123991]

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>
libstdc++-v3/include/bits/basic_string.h
libstdc++-v3/include/bits/cow_string.h
libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/char/123991.cc [new file with mode: 0644]
libstdc++-v3/testsuite/21_strings/basic_string/operations/compare/wchar_t/123991.cc [new file with mode: 0644]