[gcc r17-1623] libstdc++: adjust explicit inst of std::basic_string::data()
Marek Polacek
mpolacek@gcc.gnu.org
Wed Jun 17 15:01:36 GMT 2026
https://gcc.gnu.org/g:692c4cad4662c7672d05f8cad7fc075db20f53a0
commit r17-1623-g692c4cad4662c7672d05f8cad7fc075db20f53a0
Author: Marek Polacek <polacek@redhat.com>
Date: Fri Jun 5 17:25:36 2026 -0400
libstdc++: adjust explicit inst of std::basic_string::data()
r15-2650 removed noexcept from non-const std::basic_string::data()
in bits/cow_string.h, but the explicit instantiations in string-inst.cc
kept their noexcept. [except.spec] says that in an explicit instantiation
a noexcept-specifier may be specified, but is not required, but when it
is specified, it must be the same as the exception specification of all
other declarations of that function. So I think we should just remove it.
libstdc++-v3/ChangeLog:
* src/c++17/string-inst.cc (basic_string::data): Remove noexcept.
Reviewed-by: Patrick Palka <ppalka@redhat.com>
Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
Diff:
---
libstdc++-v3/src/c++17/string-inst.cc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/libstdc++-v3/src/c++17/string-inst.cc b/libstdc++-v3/src/c++17/string-inst.cc
index ac52adaa7b5e..e9ef1bfd0dcc 100644
--- a/libstdc++-v3/src/c++17/string-inst.cc
+++ b/libstdc++-v3/src/c++17/string-inst.cc
@@ -42,14 +42,14 @@ template basic_string<char>::basic_string(__sv_wrapper, const allocator_type&);
template basic_string<char>::__sv_wrapper::__sv_wrapper(string_view);
template string_view basic_string<char>::_S_to_string_view(string_view);
template basic_string<char>::operator string_view() const noexcept;
-template char* basic_string<char>::data() noexcept;
+template char* basic_string<char>::data();
#ifdef _GLIBCXX_USE_WCHAR_T
template basic_string<wchar_t>::basic_string(__sv_wrapper, const allocator_type&);
template basic_string<wchar_t>::__sv_wrapper::__sv_wrapper(wstring_view);
template wstring_view basic_string<wchar_t>::_S_to_string_view(wstring_view);
template basic_string<wchar_t>::operator wstring_view() const noexcept;
-template wchar_t* basic_string<wchar_t>::data() noexcept;
+template wchar_t* basic_string<wchar_t>::data();
#endif
_GLIBCXX_END_NAMESPACE_VERSION
More information about the Libstdc++-cvs
mailing list