// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fobjc-nonfragile-abi -fsyntax-only -fobjc-arc -x objective-c %s.result
// RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fobjc-nonfragile-abi -fsyntax-only -x objective-c %s > %t
// RUN: diff %t %s.result

#include "Common.h"

@interface myController : NSObject
-(id)test:(id)x;
@end

#define MY_MACRO1(x)
#define MY_MACRO2(x) (void)x

@implementation myController
-(id) test:(id) x {
  [[x retain] release];
  return [[x retain] autorelease];
}

-(void)dealloc
{
  id array, array_already_empty;
  for (id element in array_already_empty) {
  }

  [array release];
  ;

  int b, b_array_already_empty;
  if (b)
    [array release];
  if (b_array_already_empty) ;

  if (b) {
    [array release];
  }
  if (b_array_already_empty) {
  }

  if (b)
    MY_MACRO1(array);
  if (b)
    MY_MACRO2(array);
}
@end
