[committed] libstdc++: Fix tests broken by C++23 P2266R3 "Simpler implicit move"

Message ID 20221003114641.367692-1-jwakely@redhat.com
State New, archived
Headers
Series [committed] libstdc++: Fix tests broken by C++23 P2266R3 "Simpler implicit move" |

Commit Message

Jonathan Wakely Oct. 3, 2022, 11:46 a.m. UTC
  Tested x86_64-linux. Pushed to trunk.

-- >8 --

In C++23 mode these tests started to FAIL because an rvalue reference
parameter can no longer be bound to an lvalue reference return type. As
confirmed by Ville (who added these tests) the problem overloads are not
intended to be called, and only exist to verify that they don't
interfere with the intended behaviour. This changes the function bodies
to just throw, so that the tests will fail if the function is called.

libstdc++-v3/ChangeLog:

	* testsuite/27_io/basic_ostream/inserters_other/char/6.cc:
	Change body of unused operator<< overload to throw if called.
	* testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc:
	Likewise.
---
 .../testsuite/27_io/basic_ostream/inserters_other/char/6.cc     | 2 +-
 .../testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc  | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
  

Patch

diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/6.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/6.cc
index f62023c8c2e..e45af3c02af 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/6.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/6.cc
@@ -42,7 +42,7 @@  std::ostream& operator<<(std::ostream&, const X&) = delete;
 
 struct Y {};
 std::ostream& operator<<(std::ostream& os, const Y&) {return os;}
-std::ostream& operator<<(std::ostream&& os, const Y&) {return os;}
+std::ostream& operator<<(std::ostream&& os, const Y&) {throw 1;} // not used
 
 struct Z{};
 
diff --git a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc
index 6bbf4a7f341..7ef6442d358 100644
--- a/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/6.cc
@@ -42,7 +42,7 @@  std::wostream& operator<<(std::wostream&, const X&) = delete;
 
 struct Y {};
 std::wostream& operator<<(std::wostream& os, const Y&) {return os;}
-std::wostream& operator<<(std::wostream&& os, const Y&) {return os;}
+std::wostream& operator<<(std::wostream&& os, const Y&) {throw 1;} // not used
 
 struct Z{};