[libcxx-commits] [libcxx] [libc++][strings] P2591R5: Concatenation of strings and string views (PR #88389)
Hristo Hristov via libcxx-commits
libcxx-commits at lists.llvm.org
Tue Apr 16 00:08:32 PDT 2024
H-G-Hristov wrote:
> Can you create a new branch in your repository with these issues and post the branch name here? Then I want to take a look at both issues. There is a work-around for the step limit; but based on how simple the tests are I wonder whether it's not infinite recursion.
@mordante Thank you for helping!
I use the pre-compiled LLVM-19 packages on Ubuntu. I have created two branches one for each issue:
- https://github.com/llvm/llvm-project/compare/main...H-G-Hristov:llvm-project:hgh/libcxx/P2591R5-Concatenation-of-string-and-string-views-ERROR-constexpr_char_traits
- https://github.com/llvm/llvm-project/compare/main...H-G-Hristov:llvm-project:hgh/libcxx/P2591R5-Concatenation-of-string-and-string-views-ERROR-constexpr-max-step-limit
More details:
This branch should demonstrate the `constexpr_char_traits` issue:
https://github.com/llvm/llvm-project/compare/main...H-G-Hristov:llvm-project:hgh/libcxx/P2591R5-Concatenation-of-string-and-string-views-ERROR-constexpr_char_traits
```
# .---command stderr------------
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:154:17: error: static assertion expression is not an integral constant expression
# | 154 | static_assert(test<char>());
# | | ^~~~~~~~~~~~
# | /home/hristo/Projects/llvm-project/libcxx/test/support/constexpr_char_traits.h:105:12: note: comparison between '&__r.__r_.__compressed_pair_elem::__value_.__compressed_pair_elem::union (anonymous union at /home/hristo/Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:868:5).__compressed_pair_elem::__s.__compressed_pair_elem::__data_[0]' and '&"short"[0]' has unspecified value
# | 105 | if (s1 < s2)
# | | ^
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:2902:7: note: in call to 'move(&__r.__r_.__compressed_pair_elem::__value_.__compressed_pair_elem::union (anonymous union at /home/hristo/Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:868:5).__compressed_pair_elem::__s.__compressed_pair_elem::__data_[0], &"short"[0], 5)'
# | 2902 | traits_type::move(__p + __pos, __s, __n);
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:1478:12: note: in call to 'this->insert(0, &"short"[0], 5)'
# | 1478 | return insert(__pos1, __sv.data(), __sv.size());
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:4048:3: note: in call to '__r.insert<std::basic_string_view<char, constexpr_char_traits<char>>, 0>(0, __lhs)'
# | 4048 | __r.insert(0, __lhs);
# | | ^~~~~~~~~~~~~~~~~~~~
# | /home/hristo/Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:87:85: note: in call to 'operator+<char, constexpr_char_traits<char>, std::allocator<char>>({&"short"[0], 5}, st)'
# | 87 | std::same_as<std::basic_string<CharT, TraitsT, AllocT>> decltype(auto) result = sv + st;
# | | ^~~~~~~
# | /home/hristo/Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:123:3: note: in call to 'test<char, constexpr_char_traits<char>, std::allocator<char>>(&"short"[0], &""[0], &"short"[0])'
# | 123 | test<CharT, TraitsT, AllocT>(CS("short"), CS(""), CS("short"));
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/hristo/Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:144:3: note: in call to 'test<char, constexpr_char_traits<char>, std::allocator<char>>()'
# | 144 | test<CharT, constexpr_char_traits<CharT>>();
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:154:17: note: in call to 'test<char>()'
# | 154 | static_assert(test<char>());
# | | ^~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:157:17: error: static assertion expression is not an integral constant expression
# | 157 | static_assert(test<wchar_t>());
# | | ^~~~~~~~~~~~~~~
# | /home/hristo/Projects/llvm-project/libcxx/test/support/constexpr_char_traits.h:105:12: note: comparison between '&__r.__r_.__compressed_pair_elem::__value_.__compressed_pair_elem::union (anonymous union at /home/hristo/Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:868:5).__compressed_pair_elem::__s.__compressed_pair_elem::__data_[0]' and '&L"B"[0]' has unspecified value
# | 105 | if (s1 < s2)
# | | ^
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:2902:7: note: in call to 'move(&__r.__r_.__compressed_pair_elem::__value_.__compressed_pair_elem::union (anonymous union at /home/hristo/Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:868:5).__compressed_pair_elem::__s.__compressed_pair_elem::__data_[0], &L"B"[0], 1)'
# | 2902 | traits_type::move(__p + __pos, __s, __n);
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:1478:12: note: in call to 'this->insert(0, &L"B"[0], 1)'
# | 1478 | return insert(__pos1, __sv.data(), __sv.size());
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/hristo/Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:4048:3: note: in call to '__r.insert<std::basic_string_view<wchar_t, constexpr_char_traits<wchar_t>>, 0>(0, __lhs)'
# | 4048 | __r.insert(0, __lhs);
# | | ^~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:87:85: note: in call to 'operator+<wchar_t, constexpr_char_traits<wchar_t>, std::allocator<wchar_t>>({&L"B"[0], 1}, st)'
# | 87 | std::same_as<std::basic_string<CharT, TraitsT, AllocT>> decltype(auto) result = sv + st;
# | | ^~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:128:3: note: in call to 'test<wchar_t, constexpr_char_traits<wchar_t>, std::allocator<wchar_t>>(&L"B"[0], &L"D"[0], &L"BD"[0])'
# | 128 | test<CharT, TraitsT, AllocT>(CS("B"), CS("D"), CS("BD"));
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/hristo/Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:144:3: note: in call to 'test<wchar_t, constexpr_char_traits<wchar_t>, std::allocator<wchar_t>>()'
# | 144 | test<CharT, constexpr_char_traits<CharT>>();
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:157:17: note: in call to 'test<wchar_t>()'
# | 157 | static_assert(test<wchar_t>());
# | | ^~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:161:17: error: static assertion expression is not an integral constant expression
# | 161 | static_assert(test<char8_t>());
# | | ^~~~~~~~~~~~~~~
# | /home/hristo/Projects/llvm-project/libcxx/test/support/constexpr_char_traits.h:105:12: note: comparison between '&__r.__r_.__compressed_pair_elem::__value_.__compressed_pair_elem::union (anonymous union at /home/hristo/Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:868:5).__compressed_pair_elem::__s.__compressed_pair_elem::__data_[0]' and '&u8"short"[0]' has unspecified value
# | 105 | if (s1 < s2)
# | | ^
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:2902:7: note: in call to 'move(&__r.__r_.__compressed_pair_elem::__value_.__compressed_pair_elem::union (anonymous union at /home/hristo/Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:868:5).__compressed_pair_elem::__s.__compressed_pair_elem::__data_[0], &u8"short"[0], 5)'
# | 2902 | traits_type::move(__p + __pos, __s, __n);
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:1478:12: note: in call to 'this->insert(0, &u8"short"[0], 5)'
# | 1478 | return insert(__pos1, __sv.data(), __sv.size());
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:4048:3: note: in call to '__r.insert<std::basic_string_view<char8_t, constexpr_char_traits<char8_t>>, 0>(0, __lhs)'
# | 4048 | __r.insert(0, __lhs);
# | | ^~~~~~~~~~~~~~~~~~~~
# | /home/hristo/Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:87:85: note: in call to 'operator+<char8_t, constexpr_char_traits<char8_t>, std::allocator<char8_t>>({&u8"short"[0], 5}, st)'
# | 87 | std::same_as<std::basic_string<CharT, TraitsT, AllocT>> decltype(auto) result = sv + st;
# | | ^~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:123:3: note: in call to 'test<char8_t, constexpr_char_traits<char8_t>, std::allocator<char8_t>>(&u8"short"[0], &u8""[0], &u8"short"[0])'
# | 123 | test<CharT, TraitsT, AllocT>(CS("short"), CS(""), CS("short"));
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:144:3: note: in call to 'test<char8_t, constexpr_char_traits<char8_t>, std::allocator<char8_t>>()'
# | 144 | test<CharT, constexpr_char_traits<CharT>>();
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home/hristo/Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:161:17: note: in call to 'test<char8_t>()'
# | 161 | static_assert(test<char8_t>());
# | | ^~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:164:17: error: static assertion expression is not an integral constant expression
# | 164 | static_assert(test<char16_t>());
# | | ^~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/support/constexpr_char_traits.h:105:12: note: comparison between '&__r.__r_.__compressed_pair_elem::__value_.__compressed_pair_elem::union (anonymous union at /home/hristo/Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:868:5).__compressed_pair_elem::__s.__compressed_pair_elem::__data_[0]' and '&u"short"[0]' has unspecified value
# | 105 | if (s1 < s2)
# | | ^
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:2902:7: note: in call to 'move(&__r.__r_.__compressed_pair_elem::__value_.__compressed_pair_elem::union (anonymous union at /home/hristo/Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:868:5).__compressed_pair_elem::__s.__compressed_pair_elem::__data_[0], &u"short"[0], 5)'
# | 2902 | traits_type::move(__p + __pos, __s, __n);
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:1478:12: note: in call to 'this->insert(0, &u"short"[0], 5)'
# | 1478 | return insert(__pos1, __sv.data(), __sv.size());
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:4048:3: note: in call to '__r.insert<std::basic_string_view<char16_t, constexpr_char_traits<char16_t>>, 0>(0, __lhs)'
# | 4048 | __r.insert(0, __lhs);
# | | ^~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:87:85: note: in call to 'operator+<char16_t, constexpr_char_traits<char16_t>, std::allocator<char16_t>>({&u"short"[0], 5}, st)'
# | 87 | std::same_as<std::basic_string<CharT, TraitsT, AllocT>> decltype(auto) result = sv + st;
# | | ^~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:123:3: note: in call to 'test<char16_t, constexpr_char_traits<char16_t>, std::allocator<char16_t>>(&u"short"[0], &u""[0], &u"short"[0])'
# | 123 | test<CharT, TraitsT, AllocT>(CS("short"), CS(""), CS("short"));
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:144:3: note: in call to 'test<char16_t, constexpr_char_traits<char16_t>, std::allocator<char16_t>>()'
# | 144 | test<CharT, constexpr_char_traits<CharT>>();
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:164:17: note: in call to 'test<char16_t>()'
# | 164 | static_assert(test<char16_t>());
# | | ^~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:166:17: error: static assertion expression is not an integral constant expression
# | 166 | static_assert(test<char32_t>());
# | | ^~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/support/constexpr_char_traits.h:105:12: note: comparison between '&__r.__r_.__compressed_pair_elem::__value_.__compressed_pair_elem::union (anonymous union at /home/hristo/Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:868:5).__compressed_pair_elem::__s.__compressed_pair_elem::__data_[0]' and '&U"B"[0]' has unspecified value
# | 105 | if (s1 < s2)
# | | ^
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:2902:7: note: in call to 'move(&__r.__r_.__compressed_pair_elem::__value_.__compressed_pair_elem::union (anonymous union at /home/hristo/Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:868:5).__compressed_pair_elem::__s.__compressed_pair_elem::__data_[0], &U"B"[0], 1)'
# | 2902 | traits_type::move(__p + __pos, __s, __n);
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:1478:12: note: in call to 'this->insert(0, &U"B"[0], 1)'
# | 1478 | return insert(__pos1, __sv.data(), __sv.size());
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:4048:3: note: in call to '__r.insert<std::basic_string_view<char32_t, constexpr_char_traits<char32_t>>, 0>(0, __lhs)'
# | 4048 | __r.insert(0, __lhs);
# | | ^~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:87:85: note: in call to 'operator+<char32_t, constexpr_char_traits<char32_t>, std::allocator<char32_t>>({&U"B"[0], 1}, st)'
# | 87 | std::same_as<std::basic_string<CharT, TraitsT, AllocT>> decltype(auto) result = sv + st;
# | | ^~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:128:3: note: in call to 'test<char32_t, constexpr_char_traits<char32_t>, std::allocator<char32_t>>(&U"B"[0], &U"D"[0], &U"BD"[0])'
# | 128 | test<CharT, TraitsT, AllocT>(CS("B"), CS("D"), CS("BD"));
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:144:3: note: in call to 'test<char32_t, constexpr_char_traits<char32_t>, std::allocator<char32_t>>()'
# | 144 | test<CharT, constexpr_char_traits<CharT>>();
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:166:17: note: in call to 'test<char32_t>()'
# | 166 | static_assert(test<char32_t>());
# | | ^~~~~~~~~~~~~~~~
# | 5 errors generated.
# `-----------------------------
# error: command failed with exit status: 1
--
********************
Testing: 0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90..
********************
Failed Tests (1):
llvm-libc++-shared.cfg.in :: std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp
```
This branch should demonstrate: constexpr evaluation hit maximum step limit; possible infinite loop?
https://github.com/llvm/llvm-project/compare/main...H-G-Hristov:llvm-project:hgh/libcxx/P2591R5-Concatenation-of-string-and-string-views-ERROR-constexpr-max-step-limit
```
# .---command stderr------------
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:168:17: error: static assertion expression is not an integral constant expression
# | 168 | static_assert(test());
# | | ^~~~~~
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/__memory/compressed_pair.h:142:5: note: constexpr evaluation hit maximum step limit; possible infinite loop?
# | 142 | return static_cast<_Base2 const&>(*this).__get();
# | | ^
# | /home/hristo/Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:1882:100: note: in call to 'this->__r_.second()'
# | 1882 | _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR const allocator_type& __alloc() const _NOEXCEPT { return __r_.second(); }
# | | ^~~~~~~~~~~~~
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:1661:12: note: in call to 'this->__alloc()'
# | 1661 | return __alloc();
# | | ^~~~~~~~~
# | /home//Projects/llvm-project/build/default.debug.libcxx/include/c++/v1/string:4056:80: note: in call to '__lhs.get_allocator()'
# | 4056 | _String::__alloc_traits::select_on_container_copy_construction(__lhs.get_allocator()));
# | | ^~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:70:42: note: in call to 'operator+<wchar_t, std::char_traits<wchar_t>, test_allocator<wchar_t>>(st, {&L""[0], 0})'
# | 70 | LIBCPP_ASSERT(is_string_asan_correct(st + sv));
# | | ^~~~~~~
# | /home//Projects/llvm-project/libcxx/test/support/test_macros.h:242:35: note: expanded from macro 'LIBCPP_ASSERT'
# | 242 | #define LIBCPP_ASSERT(...) assert(__VA_ARGS__)
# | | ^~~~~~~~~~~
# | /usr/include/assert.h:93:27: note: expanded from macro 'assert'
# | 93 | (static_cast <bool> (expr) \
# | | ^~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:125:3: note: in call to 'test<wchar_t, std::char_traits<wchar_t>, test_allocator<wchar_t>>(&L"this is a much longer string"[0], &L""[0], &L"this is a much longer string"[0])'
# | 125 | test<CharT, TraitsT, AllocT>(CS("this is a much longer string"), CS(""), CS("this is a much longer string"));
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:142:3: note: in call to 'test<wchar_t, std::char_traits<wchar_t>, test_allocator<wchar_t>>()'
# | 142 | test<CharT, std::char_traits<CharT>, test_allocator<CharT>>();
# | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# | /home//Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:155:3: note: in call to 'test<wchar_t>()'
# | 155 | test<wchar_t>();
# | | ^~~~~~~~~~~~~~~
# | /home/hristo/Projects/llvm-project/libcxx/test/std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp:168:17: note: in call to 'test()'
# | 168 | static_assert(test());
# | | ^~~~~~
# | 1 error generated.
# `-----------------------------
# error: command failed with exit status: 1
--
********************
Testing: 0.. 10.. 20.. 30.. 40.. 50.. 60.. 70.. 80.. 90..
********************
Failed Tests (1):
llvm-libc++-shared.cfg.in :: std/strings/basic.string/string.nonmembers/string_op+/string.string_view.pass.cpp
```
https://github.com/llvm/llvm-project/pull/88389
More information about the libcxx-commits
mailing list