1 | // RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fsyntax-only -fobjc-arc -x objective-c++ %s.result |
2 | // RUN: arcmt-test --args -triple x86_64-apple-darwin10 -fsyntax-only -x objective-c++ %s > %t |
3 | // RUN: diff %t %s.result |
4 | |
5 | #include "Common.h" |
6 | |
7 | @interface NSString : NSObject |
8 | +(id)string; |
9 | @end |
10 | |
11 | struct foo { |
12 | NSString *s; |
13 | foo(NSString *s): s([s retain]){ |
14 | NSAutoreleasePool *pool = [NSAutoreleasePool new]; |
15 | [[[NSString string] retain] release]; |
16 | [pool drain]; |
17 | if (s) |
18 | [s release]; |
19 | } |
20 | ~foo(){ [s release]; } |
21 | private: |
22 | foo(foo const &); |
23 | foo &operator=(foo const &); |
24 | }; |
25 | |
26 | int main(){ |
27 | NSAutoreleasePool *pool = [NSAutoreleasePool new]; |
28 | |
29 | foo f([[NSString string] autorelease]); |
30 | |
31 | [pool drain]; |
32 | return 0; |
33 | } |
34 | |