/* APPLE LOCAL file mainline */
/* The following should NOT generate "may not respond to" warnings, since a forward-declared
   @class (instance) should be treated like a 'Class') ('id').  */
/* { dg-do compile } */

/* APPLE LOCAL radar 4894756 */
#include "../objc/execute/Object2.h"

@class NotKnown;

void foo(NotKnown *n) {
  [NotKnown new];	  /* { dg-warning "receiver 'NotKnown' is a forward class" } */
  [n nonexistent_method]; /* { dg-warning "no .\\-nonexistent_method. method found" } */
}

/* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
/* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 0 } */
/* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 0 } */

