xref: /aosp_15_r20/external/clang/test/SemaObjCXX/debugger-cast-result-to-id.mm (revision 67e74705e28f6214e480b399dd47ea732279e315)
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