xref: /llvm-project/clang/test/CodeGenObjCXX/write-barrier-global-assign.mm (revision 0f1c1be1968076d6f96f8a7bcc4a15cf195ecd97)
1// RUN: %clang_cc1 -fobjc-gc -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s
2
3@class CPDestUser;
4
5CPDestUser* FUNC();
6
7// CHECK: {{call.* @objc_assign_global}}
8CPDestUser* globalUser = FUNC();
9
10// CHECK: {{call.* @objc_assign_weak}}
11__weak CPDestUser* weakUser = FUNC();
12
13
14// CHECK: {{call.* @objc_assign_global}}
15static CPDestUser* staticUser = FUNC();
16
17CPDestUser* GetDestUser()
18{
19// CHECK: {{call.* @objc_assign_global}}
20	static CPDestUser* gUser = FUNC();
21// CHECK: {{call.* @objc_assign_weak}}
22	static __weak CPDestUser* wUser = FUNC();
23        if (wUser)
24          return wUser;
25        if (staticUser)
26	  return staticUser;
27	return gUser;
28}
29