// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s // This should not use a memmove_collectable in non-GC mode. namespace test0 { struct A { id x; }; // CHECK: define{{.*}} ptr @_ZN5test04testENS_1AE( // CHECK: alloca // CHECK-NEXT: getelementptr // CHECK-NEXT: store // CHECK-NEXT: [[CALL:%.*]] = call noalias noundef nonnull ptr @_Znwm( // CHECK-NEXT: call void @llvm.memcpy.p0.p0.i64( // CHECK-NEXT: ret A *test(A a) { return new A(a); } } @protocol bork @end namespace test1 { template struct RetainPtr { RetainPtr() {} }; RetainPtr > x; RetainPtr y; }