1// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s 2 3// rdar://problem/9158302 4// This should not use a memmove_collectable in non-GC mode. 5namespace test0 { 6 struct A { 7 id x; 8 }; 9 10 // CHECK: define [[A:%.*]]* @_ZN5test04testENS_1AE( 11 // CHECK: alloca 12 // CHECK-NEXT: getelementptr 13 // CHECK-NEXT: store 14 // CHECK-NEXT: call i8* @_Znwm( 15 // CHECK-NEXT: bitcast 16 // CHECK-NEXT: bitcast 17 // CHECK-NEXT: bitcast 18 // CHECK-NEXT: call void @llvm.memcpy.p0i8.p0i8.i64( 19 // CHECK-NEXT: ret 20 A *test(A a) { 21 return new A(a); 22 } 23} 24 25 26// rdar://9780211 27@protocol bork 28@end 29 30namespace test1 { 31template<typename T> struct RetainPtr { 32 RetainPtr() {} 33}; 34 35 36RetainPtr<id<bork> > x; 37RetainPtr<id> y; 38 39} 40