[clang] Handle __declspec() attributes in using
[llvm-project.git] / clang / test / ARCMT / retains.m.result
blob4e720d6bb4c11285cea3ec5e1ad8cf92072bfc44
1 // RUN: %clang_cc1 -fblocks -fsyntax-only -fobjc-arc -x objective-c %s.result
2 // RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fblocks -fsyntax-only -x objective-c %s > %t
3 // RUN: diff %t %s.result
5 #include "Common.h"
7 id IhaveSideEffect(void);
9 @interface Foo : NSObject {
10   id bar;
12 @property (strong) id bar;
13 -(id)test:(id)obj;
14 -(id)something;
15 @end
17 #define Something_Macro(key, comment) \
18  [[Foo new] something]
20 @implementation Foo
22 @synthesize bar;
24 -(id)something {}
26 -(id)test:(id)obj {
27   id x = self.bar;
28   self.bar = obj;
30   Something_Macro(@"foo", "@bar");
32   IhaveSideEffect();
34   [self something];
36   [self something];
38   IhaveSideEffect();
39   // do stuff with x;
40   return self;
42   
43 - (id)test1 {
44   id x=0;
45   return (((x)));
47 @end
49 id foo (Foo *p) {
50     p = p;
51     return (p);
54 void block_tests(Foo *p) {
55   id (^B)(void) = ^(void) {
56     if (p) {
57       id (^IB)(void) = ^(void) {
58         id bar = p;
59         return bar;
60       };
61       IB();
62     }
63     return p;
64   };