| // RUN: %clang_cc1 -fvisibility hidden -emit-llvm -o - %s | FileCheck %s |
| |
| // Verify that symbols are hidden. |
| // CHECK: @_ZN1CIiE5Inner6Inner26StaticE = weak hidden global |
| // CHECK: define weak_odr hidden void @_ZN1CIiE5Inner1fEv |
| // CHECK: define weak_odr hidden void @_ZN1CIiE5Inner6Inner21gEv |
| |
| template<typename T> |
| struct C { |
| struct Inner { |
| void f(); |
| struct Inner2 { |
| void g(); |
| static int Static; |
| }; |
| }; |
| }; |
| |
| template<typename T> void C<T>::Inner::f() { } |
| template<typename T> void C<T>::Inner::Inner2::g() { } |
| template<typename T> int C<T>::Inner::Inner2::Static; |
| |
| extern template struct C<int>; |
| template struct C<int>; |