diff --git a/libstdc++-v3/include/bits/basic_string.h b/libstdc++-v3/include/bits/basic_string.h index d06330e6c48..1be42e415f5 100644 --- a/libstdc++-v3/include/bits/basic_string.h +++ b/libstdc++-v3/include/bits/basic_string.h @@ -3407,6 +3407,9 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 return __sv_type(this->data(), this->size()).starts_with(__x); } + bool + starts_with(nullptr_t) const noexcept = delete; + constexpr bool ends_with(basic_string_view<_CharT, _Traits> __x) const noexcept { return __sv_type(this->data(), this->size()).ends_with(__x); } @@ -3421,6 +3424,9 @@ _GLIBCXX_BEGIN_NAMESPACE_CXX11 __glibcxx_requires_string(__x); return __sv_type(this->data(), this->size()).ends_with(__x); } + + bool + ends_with(nullptr_t) const noexcept = delete; #endif // C++20 #if __cplusplus > 202002L diff --git a/libstdc++-v3/include/bits/cow_string.h b/libstdc++-v3/include/bits/cow_string.h index 59b36a1006a..f8f0959554d 100644 --- a/libstdc++-v3/include/bits/cow_string.h +++ b/libstdc++-v3/include/bits/cow_string.h @@ -3019,6 +3019,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION return __sv_type(this->data(), this->size()).starts_with(__x); } + bool + starts_with(nullptr_t) const noexcept = delete; + bool ends_with(basic_string_view<_CharT, _Traits> __x) const noexcept { return __sv_type(this->data(), this->size()).ends_with(__x); } @@ -3033,6 +3036,9 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION __glibcxx_requires_string(__x); return __sv_type(this->data(), this->size()).ends_with(__x); } + + bool + ends_with(nullptr_t) const noexcept = delete; #endif // C++20 #if __cplusplus > 202011L diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/char_neg.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/char_neg.cc index 7a7b8dd077d..273e9a6a564 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/char_neg.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/char_neg.cc @@ -15,10 +15,8 @@ // with this library; see the file COPYING3. If not see // . // -// { dg-options "-std=gnu++2a -O0" } -// { dg-do run { target c++2a xfail *-*-* } } - -#define _GLIBCXX_DEBUG_PEDANTIC +// { dg-options "-std=gnu++2a" } +// { dg-do compile { target c++2a xfail *-*-* } } #include diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/wchar_t_neg.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/wchar_t_neg.cc index a6881bf406b..07588ea2bf7 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/wchar_t_neg.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/ends_with/wchar_t_neg.cc @@ -15,10 +15,8 @@ // with this library; see the file COPYING3. If not see // . // -// { dg-options "-std=gnu++2a -O0" } -// { dg-do run { target c++2a xfail *-*-* } } - -#define _GLIBCXX_DEBUG_PEDANTIC +// { dg-options "-std=gnu++2a" } +// { dg-do compile { target c++2a xfail *-*-* } } #include diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/char_neg.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/char_neg.cc index f357aef2289..9b6b0d2ddda 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/char_neg.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/char_neg.cc @@ -15,10 +15,8 @@ // with this library; see the file COPYING3. If not see // . // -// { dg-options "-std=gnu++2a -O0" } -// { dg-do run { target c++2a xfail *-*-* } } - -#define _GLIBCXX_DEBUG_PEDANTIC +// { dg-options "-std=gnu++2a" } +// { dg-do compile { target c++2a xfail *-*-* } } #include diff --git a/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/wchar_t_neg.cc b/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/wchar_t_neg.cc index 90065a459b6..1ea10d1ab39 100644 --- a/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/wchar_t_neg.cc +++ b/libstdc++-v3/testsuite/21_strings/basic_string/operations/starts_with/wchar_t_neg.cc @@ -15,10 +15,8 @@ // with this library; see the file COPYING3. If not see // . // -// { dg-options "-std=gnu++2a -O0" } -// { dg-do run { target c++2a xfail *-*-* } } - -#define _GLIBCXX_DEBUG_PEDANTIC +// { dg-options "-std=gnu++2a" } +// { dg-do compile { target c++2a xfail *-*-* } } #include