]>
Commit | Line | Data |
---|---|---|
223e47cc LB |
1 | // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c %s.result |
2 | // RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c %s > %t | |
3 | // RUN: diff %t %s.result | |
4 | ||
5 | @interface Foo | |
6 | @property (strong) id x; | |
7 | @property (strong) id y; | |
8 | @property (strong) id w; | |
9 | @property (strong) id z; | |
10 | @property (strong) id q; | |
11 | @end | |
12 | ||
13 | @implementation Foo | |
14 | @synthesize x; | |
15 | @synthesize y; | |
16 | @synthesize w; | |
17 | @synthesize q; | |
18 | @dynamic z; | |
19 | ||
20 | - (void) dealloc { | |
21 | self.z = 0; | |
22 | } | |
23 | @end | |
24 | ||
25 | @interface Bar | |
26 | @property (strong) Foo *a; | |
27 | - (void) setA:(Foo*) val; | |
28 | - (id) a; | |
29 | @end | |
30 | ||
31 | @implementation Bar | |
32 | - (void) dealloc { | |
33 | [self setA:0]; // This is user-defined setter overriding synthesize, don't touch it. | |
34 | self.a.x = 0; // every dealloc must zero out its own ivar. This patter is not recognized. | |
35 | } | |
36 | @synthesize a; | |
37 | - (void) setA:(Foo*) val { } | |
38 | - (id) a {return 0;} | |
39 | @end |