1// PR c++/21764 2// Test for namespace visibility attribute semantics. 3 4// { dg-require-visibility "" } 5// { dg-final { scan-hidden "_ZN3foo1fEv" } } 6// { dg-final { scan-hidden "_ZN3foo1gEv" } } 7// { dg-final { scan-hidden "_ZN3foo1A1mEv" } } 8// { dg-final { scan-hidden "_ZN3foo1tIiEEvv" } } 9// { dg-final { scan-not-hidden "_ZN3foo1hEv" } } 10 11namespace foo __attribute ((visibility ("hidden"))) 12{ 13 int f() { } 14 void g(); 15 template <typename T> void t() { } 16 class A 17 { 18 void m (); 19 }; 20} 21 22namespace foo 23{ 24 void h() {} 25} 26 27void foo::g() { t<int> (); } 28 29void foo::A::m() { } 30 31