1 // { dg-options "-Wmissing-declarations" } 2 fn1()3void fn1() { } // { dg-warning "no previous declaration" } 4 namespace ns { fn2()5 void fn2() { } // { dg-warning "no previous declaration" } 6 } 7 namespace { fn3()8 void fn3() { } 9 } fn4()10static void fn4() { } 11 12 void fn5(); 13 namespace ns { 14 void fn6(); 15 } 16 fn5()17void fn5() { } 18 namespace ns { fn6()19 void fn6() { } 20 } 21 fn7()22inline void fn7() { } 23 24 class c { cfn1()25 void cfn1() { } cfn2()26 static void cfn2() { } 27 void cfn3(); 28 static void cfn4(); 29 }; 30 cfn3()31void c::cfn3() { } cfn4()32void c::cfn4() { } 33 34 static struct { sfn1__anon6b698c70010835 void sfn1() { } sfn2__anon6b698c70010836 static void sfn2() { } 37 } s; 38 39 template<typename C> tfn1()40void tfn1() { } 41 42 template void tfn1<c>(); 43 44 class d { }; 45 template<> void tfn1<d>() { } 46