(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp0x/
move-return3.C
// 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 ();
}