1*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -fvisibility hidden -emit-llvm -o - %s | FileCheck %s 2*f4a2713aSLionel Sambuc 3*f4a2713aSLionel Sambuc // Verify that symbols are hidden. 4*f4a2713aSLionel Sambuc // CHECK: @_ZN1CIiE5Inner6Inner26StaticE = weak_odr hidden global 5*f4a2713aSLionel Sambuc // CHECK-LABEL: define weak_odr hidden void @_ZN1CIiE5Inner1fEv 6*f4a2713aSLionel Sambuc // CHECK-LABEL: define weak_odr hidden void @_ZN1CIiE5Inner6Inner21gEv 7*f4a2713aSLionel Sambuc 8*f4a2713aSLionel Sambuc template<typename T> 9*f4a2713aSLionel Sambuc struct C { 10*f4a2713aSLionel Sambuc struct Inner { 11*f4a2713aSLionel Sambuc void f(); 12*f4a2713aSLionel Sambuc struct Inner2 { 13*f4a2713aSLionel Sambuc void g(); 14*f4a2713aSLionel Sambuc static int Static; 15*f4a2713aSLionel Sambuc }; 16*f4a2713aSLionel Sambuc }; 17*f4a2713aSLionel Sambuc }; 18*f4a2713aSLionel Sambuc 19*f4a2713aSLionel Sambuc template<typename T> void C<T>::Inner::f() { } 20*f4a2713aSLionel Sambuc template<typename T> void C<T>::Inner::Inner2::g() { } 21*f4a2713aSLionel Sambuc template<typename T> int C<T>::Inner::Inner2::Static; 22*f4a2713aSLionel Sambuc 23*f4a2713aSLionel Sambuc extern template struct C<int>; 24*f4a2713aSLionel Sambuc template struct C<int>; 25