// 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;
}
