1// RUN: %clang_cc1 -triple i686-pc-windows -x objective-c -Wno-return-type -fblocks -fms-extensions -rewrite-objc -fobjc-runtime=macosx-fragile-10.5 %s -o %t-rw.cpp 2// RUN: %clang_cc1 -triple i686-pc-windows -fsyntax-only -fms-extensions -Wno-address-of-temporary -Did="void *" -D"SEL=void*" -D"__declspec(X)=" %t-rw.cpp 3 4void *sel_registerName(const char *); 5 6@interface Foo { 7 int i; 8 int rrrr; 9 Foo *o; 10} 11@property int i; 12@property(readonly) int rrrr; 13@property int d; 14@property(retain) Foo *o; 15 16- (void)foo; 17@end 18 19@implementation Foo 20@synthesize i; 21@synthesize rrrr; 22@synthesize o; 23 24@dynamic d; 25 26- (void)foo { 27 i = 99; 28} 29 30- (int)bar { 31 return i; 32} 33@end 34 35@interface Bar { 36} 37@end 38 39@implementation Bar 40 41static int func(int i) { return 0; } 42 43- (void)baz { 44 Foo *obj1, *obj2; 45 int i; 46 if (obj1.i == obj2.rrrr) 47 obj1.i = 33; 48 obj1.i = func(obj2.rrrr); 49 obj1.i = obj2.rrrr; 50 obj1.i = (obj2.rrrr); 51 [obj1 setI:[obj2 rrrr]]; 52 obj1.i = [obj2 rrrr]; 53 obj1.i = 3 + [obj2 rrrr]; 54 i = obj1.o.i; 55 obj1.o.i = 77; 56} 57@end 58