// RUN: %clang_cc1 -fvisibility hidden -emit-llvm -o - %s | FileCheck %s // Verify that symbols are hidden. // CHECK: @_ZN1CIiE5Inner6Inner26StaticE = weak_odr 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>;