1*67e74705SXin Li// RUN: %clang_cc1 -fblocks -fsyntax-only -fobjc-arc -x objective-c %s.result 2*67e74705SXin Li// RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fblocks -fsyntax-only -x objective-c %s > %t 3*67e74705SXin Li// RUN: diff %t %s.result 4*67e74705SXin Li 5*67e74705SXin Li#include "Common.h" 6*67e74705SXin Li 7*67e74705SXin Liid IhaveSideEffect(); 8*67e74705SXin Li 9*67e74705SXin Li@interface Foo : NSObject { 10*67e74705SXin Li id bar; 11*67e74705SXin Li} 12*67e74705SXin Li@property (strong) id bar; 13*67e74705SXin Li-(id)test:(id)obj; 14*67e74705SXin Li-(id)something; 15*67e74705SXin Li@end 16*67e74705SXin Li 17*67e74705SXin Li#define Something_Macro(key, comment) \ 18*67e74705SXin Li [[Foo new] something] 19*67e74705SXin Li 20*67e74705SXin Li@implementation Foo 21*67e74705SXin Li 22*67e74705SXin Li@synthesize bar; 23*67e74705SXin Li 24*67e74705SXin Li-(id)something {} 25*67e74705SXin Li 26*67e74705SXin Li-(id)test:(id)obj { 27*67e74705SXin Li id x = self.bar; 28*67e74705SXin Li self.bar = obj; 29*67e74705SXin Li 30*67e74705SXin Li Something_Macro(@"foo", "@bar"); 31*67e74705SXin Li 32*67e74705SXin Li IhaveSideEffect(); 33*67e74705SXin Li 34*67e74705SXin Li [self something]; 35*67e74705SXin Li 36*67e74705SXin Li [self something]; 37*67e74705SXin Li 38*67e74705SXin Li IhaveSideEffect(); 39*67e74705SXin Li // do stuff with x; 40*67e74705SXin Li return self; 41*67e74705SXin Li} 42*67e74705SXin Li 43*67e74705SXin Li- (id)test1 { 44*67e74705SXin Li id x=0; 45*67e74705SXin Li return (((x))); 46*67e74705SXin Li} 47*67e74705SXin Li@end 48*67e74705SXin Li 49*67e74705SXin Liid foo (Foo *p) { 50*67e74705SXin Li p = p; 51*67e74705SXin Li return (p); 52*67e74705SXin Li} 53*67e74705SXin Li 54*67e74705SXin Livoid block_tests(Foo *p) { 55*67e74705SXin Li id (^B)() = ^() { 56*67e74705SXin Li if (p) { 57*67e74705SXin Li id (^IB)() = ^() { 58*67e74705SXin Li id bar = p; 59*67e74705SXin Li return bar; 60*67e74705SXin Li }; 61*67e74705SXin Li IB(); 62*67e74705SXin Li } 63*67e74705SXin Li return p; 64*67e74705SXin Li }; 65*67e74705SXin Li} 66