34 lines
774 B
Plaintext
34 lines
774 B
Plaintext
|
// 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
|
||
|
|
||
|
#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;
|
||
|
}
|