struct A // { dg-message "not complete" }
{
  A : A; // { dg-error "expected|incomplete" }
  A : B; // { dg-error "not declared|incomplete" }
  A : A(); // { dg-error "undefined type|incomplete" }
  A : B(); // { dg-error "function call|incomplete|not declared" }
  A : A[]; // { dg-error "expected|array reference|incomplete" }
  A : B[]; // { dg-error "not declared|expected|array reference|incomplete" }
};
