// 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 | |
// DISABLE: mingw32 | |
#include "Common.h" | |
@interface NSString : NSObject | |
+(id)string; | |
@end | |
struct foo { | |
NSString *s; | |
foo(NSString *s): s([s retain]){ | |
NSAutoreleasePool *pool = [NSAutoreleasePool new]; | |
[[[NSString string] retain] release]; | |
[pool drain]; | |
if (s) | |
[s release]; | |
} | |
~foo(){ [s release]; } | |
private: | |
foo(foo const &); | |
foo &operator=(foo const &); | |
}; | |
int main(){ | |
NSAutoreleasePool *pool = [NSAutoreleasePool new]; | |
foo f([[NSString string] autorelease]); | |
[pool drain]; | |
return 0; | |
} |