// RUN: %clang_cc1 -fobjc-gc -triple x86_64-apple-darwin10 -fobjc-fragile-abi -emit-llvm -o - %s | FileCheck %s
// rdar://8761767

@class CPDestUser;

CPDestUser* FUNC();

// CHECK: {{call.* @objc_assign_global}}
CPDestUser* globalUser = FUNC();

// CHECK: {{call.* @objc_assign_weak}}
__weak CPDestUser* weakUser = FUNC();


// CHECK: {{call.* @objc_assign_global}}
static CPDestUser* staticUser = FUNC();

CPDestUser* GetDestUser()
{
// CHECK: {{call.* @objc_assign_global}}
	static CPDestUser* gUser = FUNC();
// CHECK: {{call.* @objc_assign_weak}}
	static __weak CPDestUser* wUser = FUNC();
        if (wUser)
          return wUser;
        if (staticUser)
	  return staticUser;
	return gUser;
}
