// RUN: %clang_cc1 -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -fobjc-gc -emit-llvm -o - %s | FileCheck %s
struct Coerce {
  id a;
};

struct Coerce coerce_func(void);

// CHECK-LABEL: define void @Coerce_test()
void Coerce_test(void) {
  struct Coerce c;
  
  // CHECK: call i8* @coerce_func
  // CHECK: call i8* @objc_memmove_collectable(
  c = coerce_func();
}

struct Indirect {
  id a;
  int b[10];
};

struct Indirect indirect_func(void);

// CHECK-LABEL: define void @Indirect_test()
void Indirect_test(void) {
  struct Indirect i;
  
  // CHECK: call void @indirect_func(%struct.Indirect* sret
  // CHECK: call i8* @objc_memmove_collectable(
  i = indirect_func();
}
