This uses sizeof on a wide string to get the length, which is wrong
because each wchar_t is more than one byte. This was presumably copied
from a narrow char test.
libstdc++-v3/ChangeLog:
* testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc: Use
wcslen(cs) instead of sizeof(cs)-1.
---
Tested powerpc64le-linux.
.../testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git
a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc
b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc
index 2e9dea13a774..91e55129908c 100644
--- a/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc
+++ b/libstdc++-v3/testsuite/28_regex/basic_regex/assign/wchar_t/pstring.cc
@@ -23,6 +23,7 @@
// [28.8.3] class template basic_regex assign()
#include <regex>
+#include <cwchar>
// Tests assign operation from a Pascal-style counted-string.
void test01()
@@ -31,7 +32,7 @@ void test01()
const wchar_t cs[] = L"aab";
test_type re;
- re.assign(cs, sizeof(cs)-1, std::regex_constants::basic);
+ re.assign(cs, std::wcslen(cs), std::regex_constants::basic);
}
int
--
2.51.0