1 // RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
2 // rdar: // 8562966
3 // pr8409
4 
5 // CHECK: @_ZN1CIiE11needs_guardE = weak_odr global
6 // CHECK: @_ZGVN1CIiE11needs_guardE = weak_odr global
7 
8 struct K
9 {
10   K();
11   K(const K &);
12   ~K();
13   void PrintNumK();
14 };
15 
16 template<typename T>
17 struct C
18 {
19   void Go() { needs_guard.PrintNumK(); }
20   static K needs_guard;
21 };
22 
23 template<typename T> K C<T>::needs_guard;
24 
25 void F()
26 {
27   C<int>().Go();
28 }
29 
30