[clang] Implement lifetime analysis for lifetime_capture_by(X) (#115921)
[llvm-project.git] / clang / test / ARCMT / cxx-rewrite.mm
blob4a9c50c92426e849f38a81ef3a7c9328728427db
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
5 #include "Common.h"
7 @interface NSString : NSObject
8 +(id)string;
9 @end
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 &);
26 int main(){
27     NSAutoreleasePool *pool = [NSAutoreleasePool new];
29     foo f([[NSString string] autorelease]);
31     [pool drain];
32     return 0;