llvm/clang/test/SemaObjC/debugger-cast-result-to-id.m

// RUN: %clang_cc1 -funknown-anytype -fsyntax-only -fdebugger-support -fdebugger-cast-result-to-id -verify %s

extern __unknown_anytype test0;
extern __unknown_anytype test1(void);

void test_unknown_anytype_receiver(void) {
  (void)(int)[[test0 unknownMethod] otherUnknownMethod];;
  (void)(id)[[test1() unknownMethod] otherUnknownMethod];
  id x = test0;
  id y = test1();
}

@class NSString; // expected-note {{forward declaration of class here}}

void rdar10988847(void) {
  id s = [NSString stringWithUTF8String:"foo"]; // expected-warning {{receiver 'NSString' is a forward class and corresponding @interface may not exist}}
}