// PR c++/89419
// { dg-do compile { target c++14 } }

struct A;
struct B {
  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; };

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; };
}
