1// RUN: %clang_cc1 -fblocks -fsyntax-only -verify %s 2 3@interface NSObject 4- (id)self; 5- (id)copy; 6@end 7 8typedef struct _foo *__attribute__((NSObject)) Foo_ref; 9 10@interface TestObject { 11 Foo_ref dict; 12} 13@property(retain) Foo_ref dict; 14@end 15 16@implementation TestObject 17@synthesize dict; 18@end 19 20@interface NSDictionary 21- (int)retainCount; 22@end 23 24int main(int argc, char *argv[]) { 25 NSDictionary *dictRef; 26 Foo_ref foo = (Foo_ref)dictRef; 27 28 // do Properties retain? 29 int before = [dictRef retainCount]; 30 int after = [dictRef retainCount]; 31 32 if ([foo retainCount] != [dictRef retainCount]) { 33 } 34 35 // do Blocks retain? 36 { 37 void (^block)(void) = ^{ 38 [foo self]; 39 }; 40 before = [foo retainCount]; 41 id save = [block copy]; 42 after = [foo retainCount]; 43 if (after <= before) { 44 ; 45 } 46 } 47 return 0; 48} 49