// RUN: %clang_cc1 -fblocks -fsyntax-only -fobjc-arc -x objective-c %s.result // RUN: cp %s %t // RUN: %clang_cc1 -arcmt-modify -triple x86_64-apple-macosx10.6 -x objective-c %t // RUN: diff %t %s.result // RUN: rm %t typedef int BOOL; id IhaveSideEffect(); @protocol NSObject - (BOOL)isEqual:(id)object; - (id)retain; - (oneway void)release; @end @interface NSObject <NSObject> {} @end @interface Foo : NSObject { id bar; } @property (strong) id bar; -(void)test:(id)obj; @end @implementation Foo @synthesize bar; -(void)test:(id)obj { id x = self.bar; self.bar = obj; // do stuff with x; IhaveSideEffect(); x = 0; } @end void func(Foo *p) { } @interface Baz { id <NSObject> _foo; } @end @implementation Baz @end #define RELEASE_MACRO(x) [x release] #define RELEASE_MACRO2(x) RELEASE_MACRO(x) void test2(id p) { }