1*67e74705SXin Li// RUN: %clang_cc1 -std=c++11 -fdebugger-support -fdebugger-cast-result-to-id -funknown-anytype -fsyntax-only -verify %s 2*67e74705SXin Li 3*67e74705SXin Liextern __unknown_anytype test0a; 4*67e74705SXin Liextern __unknown_anytype test1a(); 5*67e74705SXin Liextern __unknown_anytype test0b; 6*67e74705SXin Liextern __unknown_anytype test1b(); 7*67e74705SXin Liextern __unknown_anytype test0c; 8*67e74705SXin Liextern __unknown_anytype test1c(); 9*67e74705SXin Liextern __unknown_anytype test0d; 10*67e74705SXin Liextern __unknown_anytype test1d(); 11*67e74705SXin Liextern __unknown_anytype test0d; 12*67e74705SXin Liextern __unknown_anytype test1d(); 13*67e74705SXin Li 14*67e74705SXin Li@interface A 15*67e74705SXin Li@end 16*67e74705SXin Li 17*67e74705SXin Li// rdar://problem/9416370 18*67e74705SXin Linamespace rdar9416370 { 19*67e74705SXin Li void test(id x) { 20*67e74705SXin Li if ([x foo]) {} // expected-error {{no known method '-foo'; cast the message send to the method's return type}} 21*67e74705SXin Li [x foo]; 22*67e74705SXin Li } 23*67e74705SXin Li} 24*67e74705SXin Li 25*67e74705SXin Li// rdar://10988847 26*67e74705SXin Li@class NSString; // expected-note {{forward declaration of class here}} 27*67e74705SXin Linamespace rdar10988847 { 28*67e74705SXin Li void test() { 29*67e74705SXin Li id s = [NSString stringWithUTF8String:"foo"]; // expected-warning {{receiver 'NSString' is a forward class and corresponding @interface may not exist}} 30*67e74705SXin Li } 31*67e74705SXin Li} 32*67e74705SXin Li 33*67e74705SXin Li// rdar://13338107 34*67e74705SXin Linamespace rdar13338107 { 35*67e74705SXin Li void test() { 36*67e74705SXin Li id x1 = test0a; 37*67e74705SXin Li id x2 = test1a(); 38*67e74705SXin Li A *x3 = test0b; 39*67e74705SXin Li A *x4 = test1b(); 40*67e74705SXin Li auto x5 = test0c; 41*67e74705SXin Li auto x6 = test1c(); 42*67e74705SXin Li } 43*67e74705SXin Li} 44