[committed] libstdc++: Fix PSTL test that fails in C++20

Message ID 20230601155651.305379-1-jwakely@redhat.com
State Committed
Commit f8403c43045cd56b5f775e1cf12a3f22feca4b58
Series [committed] libstdc++: Fix PSTL test that fails in C++20 |

Commit Message

Jonathan Wakely June 1, 2023, 3:56 p.m. UTC
  Tested x86_64-linux. Pushed to trunk, will backport too.

Tom, this will require rebasing your PSTL rebase patch, but it should be

-- >8 --

This test fails in C++20 and later due to a warning:

warning: C++20 says that these are ambiguous, even though the second is reversed:
note: candidate 1: 'bool MyClass::operator==(const MyClass&)'
note: candidate 2: 'bool MyClass::operator==(const MyClass&)' (reversed)
note: try making the operator a 'const' member function
FAIL: 26_numerics/pstl/numeric_ops/transform_reduce.cc (test for excess errors)


	* testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc:
	Add const to equality operator.
 .../testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


diff --git a/libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc b/libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc
index ec020b42bbb..bec1c141278 100644
--- a/libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc
+++ b/libstdc++-v3/testsuite/26_numerics/pstl/numeric_ops/transform_reduce.cc
@@ -68,7 +68,7 @@  class MyClass
     friend MyClass operator*(const MyClass& x, const MyClass& y) { return MyClass(x.my_field * y.my_field); }
-    operator==(const MyClass& in)
+    operator==(const MyClass& in) const
         return my_field == in.my_field;