summaryrefslogtreecommitdiff
path: root/clang/test/ARCMT/remove-dealloc-zerouts.m.result
diff options
context:
space:
mode:
Diffstat (limited to 'clang/test/ARCMT/remove-dealloc-zerouts.m.result')
-rw-r--r--clang/test/ARCMT/remove-dealloc-zerouts.m.result39
1 files changed, 39 insertions, 0 deletions
diff --git a/clang/test/ARCMT/remove-dealloc-zerouts.m.result b/clang/test/ARCMT/remove-dealloc-zerouts.m.result
new file mode 100644
index 0000000..9ae831a
--- /dev/null
+++ b/clang/test/ARCMT/remove-dealloc-zerouts.m.result
@@ -0,0 +1,39 @@
+// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c %s.result
+// RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c %s > %t
+// RUN: diff %t %s.result
+
+@interface Foo
+@property (strong) id x;
+@property (strong) id y;
+@property (strong) id w;
+@property (strong) id z;
+@property (strong) id q;
+@end
+
+@implementation Foo
+@synthesize x;
+@synthesize y;
+@synthesize w;
+@synthesize q;
+@dynamic z;
+
+- (void) dealloc {
+ self.z = 0;
+}
+@end
+
+@interface Bar
+@property (strong) Foo *a;
+- (void) setA:(Foo*) val;
+- (id) a;
+@end
+
+@implementation Bar
+- (void) dealloc {
+ [self setA:0]; // This is user-defined setter overriding synthesize, don't touch it.
+ self.a.x = 0; // every dealloc must zero out its own ivar. This patter is not recognized.
+}
+@synthesize a;
+- (void) setA:(Foo*) val { }
+- (id) a {return 0;}
+@end