--- struct StructUndeclaredDeclared; struct StructUndeclaredDefined {}; struct StructDeclaredDeclared; struct StructDeclaredDefined {}; struct StructDefinedDeclared; struct StructDefinedDefined {}; int use2StructUndeclaredDeclared(struct StructUndeclaredDeclared* undeclaredDeclared) { return 1; } int use2StructUndeclaredDefined(struct StructUndeclaredDefined* undeclaredDefined) { return 2; } int use2StructDeclaredDeclared(struct StructDeclaredDeclared* declaredDeclared) { return 4; } int use2StructDeclaredDefined(struct StructDeclaredDefined* declaredDefined) { return 5; } int use2StructDefinedDeclared(struct StructDefinedDeclared* definedDeclared) { return 7; } int use2StructDefinedDefined(struct StructDefinedDefined* definedDefined) { return 8; }