diff options
Diffstat (limited to 'test/SemaObjC/resolve-method-in-global-pool.m')
-rw-r--r-- | test/SemaObjC/resolve-method-in-global-pool.m | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/test/SemaObjC/resolve-method-in-global-pool.m b/test/SemaObjC/resolve-method-in-global-pool.m new file mode 100644 index 0000000..523856d --- /dev/null +++ b/test/SemaObjC/resolve-method-in-global-pool.m @@ -0,0 +1,63 @@ +// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -verify -fblocks -Wno-objc-root-class %s +// RUN: %clang_cc1 -x objective-c++ -triple x86_64-apple-darwin10 -fsyntax-only -verify -fblocks -Wno-objc-root-class %s +// expected-no-diagnostics + +// rdar://16808765 + +@interface NSObject ++ (void)clsMethod:(int*)arg; +@end + +@class NSDictionary; +@class NSError; + +@interface Foo : NSObject +- (void)getDonuts:(void (^)(NSDictionary *, NSError *))replyBlock; +- (void)getCake:(int*)arg, ...; +@end + +@protocol Protocol +@required +- (void)getDonuts:(void (^)(NSDictionary *))replyBlock; +- (void)getCake:(float*)arg, ...; ++ (void)clsMethod:(float*)arg; +@end + +@implementation Foo +{ + float g; +} + +- (void)getDonuts:(void (^)(NSDictionary *, NSError *))replyBlock { + [(id) 0 getDonuts:^(NSDictionary *replyDict) { }]; +} + +- (void) getCake:(int*)arg, ... { + [(id)0 getCake: &g, 1,3.14]; +} +@end + +void func( Class c, float g ) { + [c clsMethod: &g]; +} + +// rdar://18095772 +@protocol NSKeyedArchiverDelegate @end + +@interface NSKeyedArchiver +@property (assign) id <NSKeyedArchiverDelegate> delegate; +@end + +@interface NSConnection +@property (assign) id delegate; +@end + +extern id NSApp; + +@interface AppDelegate +@end + +AppDelegate* GetDelegate() +{ + return [NSApp delegate]; +} |