This test fails due to duplicate explicit instantiations on targets
where size_t and unsigned int are the same type. It also fails with
-D_GLIBCXX_USE_CXX11_ABI=0 due to using std::string in constexpr
functions, and with --disable-libstdcxx-pch due to not including
<algorithm> for ranges::fold_left.

libstdc++-v3/ChangeLog:

        PR libstdc++/119144
        * testsuite/26_numerics/complex/tuple_like.cc: Include
        <algorithm>, replace std::string with std::string_view,
        instantiate tests for long instead of size_t.
---

Tested x86_64-linux (with -m32 and -D_GLIBCXX_USE_CXX11_ABI=0 and
--disable-libstdcxx-pch).

Pushed to trunk.

 libstdc++-v3/testsuite/26_numerics/complex/tuple_like.cc | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/libstdc++-v3/testsuite/26_numerics/complex/tuple_like.cc 
b/libstdc++-v3/testsuite/26_numerics/complex/tuple_like.cc
index 7d8d2ee99ce..1150861ae0a 100644
--- a/libstdc++-v3/testsuite/26_numerics/complex/tuple_like.cc
+++ b/libstdc++-v3/testsuite/26_numerics/complex/tuple_like.cc
@@ -2,7 +2,8 @@
 
 #include <complex>
 #include <ranges>
-#include <string>
+#include <algorithm>
+#include <string_view>
 #include <type_traits>
 #include <tuple>
 #include <utility>
@@ -83,10 +84,10 @@ void
 test_tuple_cat()
 {
   std::complex<T> cpx(T(1), T(2));
-  std::pair<int, std::string> p(42, "hello");
+  std::pair<int, std::string_view> p(42, "hello");
 
   auto r = std::tuple_cat(cpx, p, cpx);
-  static_assert(std::is_same_v<decltype(r), std::tuple<T, T, int, std::string, 
T, T>>);
+  static_assert(std::is_same_v<decltype(r), std::tuple<T, T, int, 
std::string_view, T, T>>);
   VERIFY(std::get<0>(r) == T(1));
   VERIFY(std::get<1>(r) == T(2));
   VERIFY(std::get<2>(r) == 42);
@@ -176,4 +177,4 @@ TEST(__gnu_cxx::__bfloat16_t)
 TEST(char)
 TEST(int)
 TEST(unsigned int)
-TEST(size_t)
+TEST(long)
-- 
2.48.1

Reply via email to