[PATCH] libstdc++: Remove noexcept from basic_string instantiations
Jonathan Wakely
jwakely@redhat.com
Wed Jul 22 20:41:23 GMT 2026
On Wed, 22 Jul 2026 at 17:54, Marek Polacek <polacek@redhat.com> wrote:
>
> CCing libstdc++.
Yes please - all libstdc++ patches need to be CC'd to the libstdc++ list.
>
> On Wed, Jul 22, 2026 at 04:48:38PM +0000, Nathan Blackburn wrote:
> > The explicit instantiations of basic_string's default constructor used
> > an unconditional noexcept specification.
> >
> > Remove noexcept from both the char and wchar_t instantiations.
> >
> > This bug has been repoted in GCC Bugzilla: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=126327
The Bugzilla reference should be in the subject line and the ChangeLog
part, see https://gcc.gnu.org/codingconventions.html#ChangeLogs and
thousands of examples in the git history.
>
> Can't approve this, but it looks OK to me.
I'll fix the commit msg and push the patch, thanks.
>
> > libstdc++-v3/ChangeLog:
> >
> > * src/c++20/string-inst.cc (basic_string::basic_string): Remove
> > noexcept.
>
> The second line may be wrongly indented here.
>
> > ---
> > libstdc++-v3/src/c++20/string-inst.cc | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/libstdc++-v3/src/c++20/string-inst.cc b/libstdc++-v3/src/c++20/string-inst.cc
> > index 2bdd77c78a4..b6b8d295b7c 100644
> > --- a/libstdc++-v3/src/c++20/string-inst.cc
> > +++ b/libstdc++-v3/src/c++20/string-inst.cc
> > @@ -37,7 +37,7 @@
> > namespace std _GLIBCXX_VISIBILITY(default)
> > {
> > _GLIBCXX_BEGIN_NAMESPACE_VERSION
> > -template basic_string<char>::basic_string() noexcept;
> > +template basic_string<char>::basic_string();
> > template bool basic_string<char>::starts_with(string_view) const noexcept;
> > template bool basic_string<char>::starts_with(char) const noexcept;
> > template bool basic_string<char>::starts_with(const char*) const noexcept;
> > @@ -46,7 +46,7 @@ template bool basic_string<char>::ends_with(char) const noexcept;
> > template bool basic_string<char>::ends_with(const char*) const noexcept;
> >
> > #ifdef _GLIBCXX_USE_WCHAR_T
> > -template basic_string<wchar_t>::basic_string() noexcept;
> > +template basic_string<wchar_t>::basic_string();
> > template bool basic_string<wchar_t>::starts_with(wstring_view) const noexcept;
> > template bool basic_string<wchar_t>::starts_with(wchar_t) const noexcept;
> > template bool basic_string<wchar_t>::starts_with(const wchar_t*) const noexcept;
> > --
> > 2.47.3
> >
>
> Marek
>
More information about the Libstdc++
mailing list