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