xref: /aosp_15_r20/external/clang/test/SemaObjC/resolve-method-in-global-pool.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -verify -fblocks -Wno-objc-root-class %s
2*67e74705SXin Li// RUN: %clang_cc1 -x objective-c++ -triple x86_64-apple-darwin10 -fsyntax-only -verify -fblocks -Wno-objc-root-class %s
3*67e74705SXin Li// expected-no-diagnostics
4*67e74705SXin Li
5*67e74705SXin Li// rdar://16808765
6*67e74705SXin Li
7*67e74705SXin Li@interface NSObject
8*67e74705SXin Li+ (void)clsMethod:(int*)arg;
9*67e74705SXin Li@end
10*67e74705SXin Li
11*67e74705SXin Li@class NSDictionary;
12*67e74705SXin Li@class NSError;
13*67e74705SXin Li
14*67e74705SXin Li@interface Foo : NSObject
15*67e74705SXin Li- (void)getDonuts:(void (^)(NSDictionary *, NSError *))replyBlock;
16*67e74705SXin Li- (void)getCake:(int*)arg, ...;
17*67e74705SXin Li@end
18*67e74705SXin Li
19*67e74705SXin Li@protocol Protocol
20*67e74705SXin Li@required
21*67e74705SXin Li- (void)getDonuts:(void (^)(NSDictionary *))replyBlock;
22*67e74705SXin Li- (void)getCake:(float*)arg, ...;
23*67e74705SXin Li+ (void)clsMethod:(float*)arg;
24*67e74705SXin Li@end
25*67e74705SXin Li
26*67e74705SXin Li@implementation Foo
27*67e74705SXin Li{
28*67e74705SXin Li  float g;
29*67e74705SXin Li}
30*67e74705SXin Li
31*67e74705SXin Li- (void)getDonuts:(void (^)(NSDictionary *, NSError *))replyBlock {
32*67e74705SXin Li    [(id) 0 getDonuts:^(NSDictionary *replyDict) { }];
33*67e74705SXin Li}
34*67e74705SXin Li
35*67e74705SXin Li- (void) getCake:(int*)arg, ... {
36*67e74705SXin Li    [(id)0 getCake: &g, 1,3.14];
37*67e74705SXin Li}
38*67e74705SXin Li@end
39*67e74705SXin Li
40*67e74705SXin Livoid func( Class c, float g ) {
41*67e74705SXin Li    [c clsMethod: &g];
42*67e74705SXin Li}
43*67e74705SXin Li
44*67e74705SXin Li// rdar://18095772
45*67e74705SXin Li@protocol NSKeyedArchiverDelegate @end
46*67e74705SXin Li
47*67e74705SXin Li@interface NSKeyedArchiver
48*67e74705SXin Li@property (assign) id <NSKeyedArchiverDelegate> delegate;
49*67e74705SXin Li@end
50*67e74705SXin Li
51*67e74705SXin Li@interface NSConnection
52*67e74705SXin Li@property (assign) id delegate;
53*67e74705SXin Li@end
54*67e74705SXin Li
55*67e74705SXin Liextern id NSApp;
56*67e74705SXin Li
57*67e74705SXin Li@interface AppDelegate
58*67e74705SXin Li@end
59*67e74705SXin Li
60*67e74705SXin LiAppDelegate* GetDelegate()
61*67e74705SXin Li{
62*67e74705SXin Li    return [NSApp delegate];
63*67e74705SXin Li}
64