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

struct Coerce coerce_func(void);

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

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

struct Indirect indirect_func(void);

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