YouCompleteMe/cpp/llvm/tools/clang/test/CodeGenObjCXX/write-barrier-global-assign.mm
Strahinja Val Markovic 1f51a89d39 Adding more llvm/clang files
These were ignored by git accidentally. We want ALL OF THEM since they all came
in the llvm/clang source distribution.
2012-07-05 17:55:45 -07:00

30 lines
701 B
Plaintext

// 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;
}