2011-10-02 09:16:38 +08:00
|
|
|
// 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
|
2011-06-24 05:21:33 +08:00
|
|
|
// RUN: diff %t %s.result
|
|
|
|
|
|
|
|
#include "Common.h"
|
|
|
|
|
|
|
|
@interface NSString : NSObject
|
|
|
|
+(id)string;
|
|
|
|
@end
|
|
|
|
|
|
|
|
struct foo {
|
|
|
|
NSString *s;
|
|
|
|
foo(NSString *s): s([s retain]){
|
|
|
|
NSAutoreleasePool *pool = [NSAutoreleasePool new];
|
2011-07-15 05:26:49 +08:00
|
|
|
[[[NSString string] retain] release];
|
2011-06-24 05:21:33 +08:00
|
|
|
[pool drain];
|
2011-09-02 04:53:18 +08:00
|
|
|
if (s)
|
|
|
|
[s release];
|
2011-06-24 05:21:33 +08:00
|
|
|
}
|
|
|
|
~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;
|
|
|
|
}
|