// PR c++/103049
// P0849R8 - auto(x)
// { dg-do compile { target c++23 } }
struct X {
  X() = default;
  X(const X&) = delete;
};
void
g ()
{
  X x;
  +X(x); // { dg-error "use of deleted function" }
  +auto(x); // { dg-error "use of deleted function" }
}
class A;
void f(A);
class A {
    int x;
public:
    A();
    auto run() {
        f(A(*this));
        f(auto(*this));
    }
protected:
    A(const A&);
};
void z () {
  A a;
  a.run ();
}