summaryrefslogtreecommitdiffstats
path: root/test/ARCMT/remove-statements.m
blob: 286a8e715e0d3f1aabe8a28c7c6690b8c9b41a04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c %s.result
// RUN: arcmt-test --args -triple x86_64-apple-darwin10 -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