// PR c++/51223

struct A
{
  A foo(void i = 0);  // { dg-error "incomplete type|invalid use" }
};

void bar()
{
  A().foo();
}

A A::foo(void i)  // { dg-error "incomplete type|invalid use" }
{
  return A();
}
