// 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<typename T> struct RetainPtr {
  RetainPtr() {}
};


RetainPtr<id<bork> > x;
RetainPtr<id> y;

}
