Home | History | Annotate | Download | only in ARCMT
      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
     40