// RUN: %clang_cc1 -fblocks -fsyntax-only -fobjc-arc -x objective-c %s.result // RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fblocks -fsyntax-only -x objective-c %s > %t // RUN: diff %t %s.result #include "Common.h" id IhaveSideEffect(); @interface Foo : NSObject { id bar; } @property (strong) id bar; -(id)test:(id)obj; -(id)something; @end #define Something_Macro(key, comment) \ [[Foo new] something] @implementation Foo @synthesize bar; -(id)something {} -(id)test:(id)obj { id x = self.bar; self.bar = obj; Something_Macro(@"foo", "@bar"); IhaveSideEffect(); [self something]; [self something]; IhaveSideEffect(); // do stuff with x; return self; } - (id)test1 { id x=0; return (((x))); } @end id foo (Foo *p) { p = p; return (p); } void block_tests(Foo *p) { id (^B)() = ^() { if (p) { id (^IB)() = ^() { id bar = p; return bar; }; IB(); } return p; }; }