(root)/
gcc-13.2.0/
gcc/
testsuite/
g++.dg/
cpp1y/
lambda-generic-89419.C
// PR c++/89419
// { dg-do compile { target c++14 } }

struct A;
struct B { // { dg-error "cannot bind" "" { target c++23 } }
  struct C { C (); C (C &); } b;
};
struct D { A operator* (); };
struct A {
  template <typename T> void foo (T x) { x (this); }
};
struct E {
  auto bar () { return e; }
  D e;
};
struct F { B f; int g; }; // { dg-error "use of deleted function" "" { target c++23 } }

int
main ()
{
  E e;
  auto f = *e.bar ();
  auto i = [&] { F g; g.g = 1; auto h = [&](auto) { g.g = 0; }; f.foo (h); return g; }; // { dg-error "use of deleted function" "" { target c++23 } }
}