1*67e74705SXin Li// 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*67e74705SXin Li// 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*67e74705SXin Li 4*67e74705SXin Livoid *sel_registerName(const char *); 5*67e74705SXin Li 6*67e74705SXin Li@interface Foo { 7*67e74705SXin Li int i; 8*67e74705SXin Li int rrrr; 9*67e74705SXin Li Foo *o; 10*67e74705SXin Li} 11*67e74705SXin Li@property int i; 12*67e74705SXin Li@property(readonly) int rrrr; 13*67e74705SXin Li@property int d; 14*67e74705SXin Li@property(retain) Foo *o; 15*67e74705SXin Li 16*67e74705SXin Li- (void)foo; 17*67e74705SXin Li@end 18*67e74705SXin Li 19*67e74705SXin Li@implementation Foo 20*67e74705SXin Li@synthesize i; 21*67e74705SXin Li@synthesize rrrr; 22*67e74705SXin Li@synthesize o; 23*67e74705SXin Li 24*67e74705SXin Li@dynamic d; 25*67e74705SXin Li 26*67e74705SXin Li- (void)foo { 27*67e74705SXin Li i = 99; 28*67e74705SXin Li} 29*67e74705SXin Li 30*67e74705SXin Li- (int)bar { 31*67e74705SXin Li return i; 32*67e74705SXin Li} 33*67e74705SXin Li@end 34*67e74705SXin Li 35*67e74705SXin Li@interface Bar { 36*67e74705SXin Li} 37*67e74705SXin Li@end 38*67e74705SXin Li 39*67e74705SXin Li@implementation Bar 40*67e74705SXin Li 41*67e74705SXin Listatic int func(int i) { return 0; } 42*67e74705SXin Li 43*67e74705SXin Li- (void)baz { 44*67e74705SXin Li Foo *obj1, *obj2; 45*67e74705SXin Li int i; 46*67e74705SXin Li if (obj1.i == obj2.rrrr) 47*67e74705SXin Li obj1.i = 33; 48*67e74705SXin Li obj1.i = func(obj2.rrrr); 49*67e74705SXin Li obj1.i = obj2.rrrr; 50*67e74705SXin Li obj1.i = (obj2.rrrr); 51*67e74705SXin Li [obj1 setI:[obj2 rrrr]]; 52*67e74705SXin Li obj1.i = [obj2 rrrr]; 53*67e74705SXin Li obj1.i = 3 + [obj2 rrrr]; 54*67e74705SXin Li i = obj1.o.i; 55*67e74705SXin Li obj1.o.i = 77; 56*67e74705SXin Li} 57*67e74705SXin Li@end 58