llvm-project/clang/test/CodeGenObjCXX/copy.mm

27 lines
666 B
Plaintext

// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -emit-llvm -o - %s | FileCheck %s
// rdar://problem/9158302
// This should not use a memmove_collectable in non-GC mode.
namespace test0 {
struct A {
id x;
};
// CHECK: define [[A:%.*]]* @_ZN5test04testENS_1AE(
// CHECK: alloca
// CHECK-NEXT: getelementptr
// CHECK-NEXT: store
// CHECK-NEXT: call noalias i8* @_Znwm(
// CHECK-NEXT: bitcast
// CHECK-NEXT: bitcast
// CHECK-NEXT: call void @llvm.memset.p0i8.i64(
// CHECK-NEXT: bitcast
// CHECK-NEXT: bitcast
// CHECK-NEXT: call void @llvm.memcpy.p0i8.p0i8.i64(
// CHECK-NEXT: ret
A *test(A a) {
return new A(a);
}
}