xref: /aosp_15_r20/external/clang/test/Rewriter/properties.m (revision 67e74705e28f6214e480b399dd47ea732279e315)
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