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 4 5#include "Common.h" 6 7@interface NSString : NSObject 8+(id)string; 9@end 10 11struct 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]; } 21private: 22 foo(foo const &); 23 foo &operator=(foo const &); 24}; 25 26int main(){ 27 NSAutoreleasePool *pool = [NSAutoreleasePool new]; 28 29 foo f([[NSString string] autorelease]); 30 31 [pool drain]; 32 return 0; 33} 34