1*67e74705SXin Li// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c %s.result 2*67e74705SXin Li// RUN: arcmt-test --args -triple x86_64-apple-darwin10 -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 Li@interface myController : NSObject 8*67e74705SXin Li-(id)test:(id)x; 9*67e74705SXin Li@end 10*67e74705SXin Li 11*67e74705SXin Li#define MY_MACRO1(x) 12*67e74705SXin Li#define MY_MACRO2(x) (void)x 13*67e74705SXin Li 14*67e74705SXin Li@implementation myController 15*67e74705SXin Li-(id) test:(id) x { 16*67e74705SXin Li [[x retain] release]; 17*67e74705SXin Li return [[x retain] autorelease]; 18*67e74705SXin Li} 19*67e74705SXin Li 20*67e74705SXin Li-(void)dealloc 21*67e74705SXin Li{ 22*67e74705SXin Li id array, array_already_empty; 23*67e74705SXin Li for (id element in array_already_empty) { 24*67e74705SXin Li } 25*67e74705SXin Li 26*67e74705SXin Li [array release]; 27*67e74705SXin Li ; 28*67e74705SXin Li 29*67e74705SXin Li int b, b_array_already_empty; 30*67e74705SXin Li if (b) 31*67e74705SXin Li [array release]; 32*67e74705SXin Li if (b_array_already_empty) ; 33*67e74705SXin Li 34*67e74705SXin Li if (b) { 35*67e74705SXin Li [array release]; 36*67e74705SXin Li } 37*67e74705SXin Li if (b_array_already_empty) { 38*67e74705SXin Li } 39*67e74705SXin Li 40*67e74705SXin Li if (b) 41*67e74705SXin Li MY_MACRO1(array); 42*67e74705SXin Li if (b) 43*67e74705SXin Li MY_MACRO2(array); 44*67e74705SXin Li} 45*67e74705SXin Li@end 46