summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sal/qa/rtl/strings/test_oustring_stringliterals.cxx8
1 files changed, 8 insertions, 0 deletions
diff --git a/sal/qa/rtl/strings/test_oustring_stringliterals.cxx b/sal/qa/rtl/strings/test_oustring_stringliterals.cxx
index 2f4de194928d..6c653f118935 100644
--- a/sal/qa/rtl/strings/test_oustring_stringliterals.cxx
+++ b/sal/qa/rtl/strings/test_oustring_stringliterals.cxx
@@ -419,7 +419,15 @@ void test::oustring::StringLiterals::checkEmbeddedNul() {
CPPUNIT_ASSERT(s.startsWith(a));
CPPUNIT_ASSERT(s.startsWith(p));
CPPUNIT_ASSERT(s.startsWith(u"foo\0hidden"));
+ // For Clang against libstdc++ with C++20 and greater, this would hit not-yet-fixed
+ // <https://github.com/llvm/llvm-project/issues/24502> "eagerly-instantiated entities whose
+ // templates are defined after the first point of instantiation don't get instantiated at all"
+ // (see the mailing list thread starting at
+ // <https://gcc.gnu.org/pipermail/libstdc++/2021-November/053548.html> "std::basic_string<_Tp>
+ // constructor point of instantiation woes?"):
+#if !(defined __clang__ && defined __GLIBCXX__ && __cplusplus >= 202002L)
CPPUNIT_ASSERT(!s.startsWith(u"foo\0hidden"s));
+#endif
CPPUNIT_ASSERT(!s.startsWith(u"foo\0hidden"sv));
/*TODO:*/
CPPUNIT_ASSERT(!s.startsWith(rtlunittest::OUStringLiteral(a)));