// PR c++/91212
// Test that C++11 implicit move semantics don't call the const copy.
// In C++23, we call #2.
// { dg-do link { target c++20_down } }
struct T { int i; };
struct X {
  X(T&) { }    // #1
  X(const T&); // #2
};
X
fn ()
{
  T buf;
  return buf;
}
int
main()
{
  X c = fn ();
}