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