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

struct a {
  void b() {}
  void c(void (*) () = [] {
      if (a a(int auto) {})  // { dg-error "two or more data types|condition declares a function" }
      ;
  }) {}
};

struct d {
  void e() {}
  void f(void (*) () = [] {
      for (;d d(int auto) {};)  // { dg-error "two or more data types|condition declares a function" }
      ;
  }) {}
};

struct g {
  void h() {}
  void i(void (*) () = [] {
      while (g g(int auto) {})  // { dg-error "two or more data types|condition declares a function" }
      ;
  }) {}
};
