1 // { dg-options "-Wmissing-declarations" }
2 
fn1()3 void 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()10 static void fn4() { }
11 
12 void fn5();
13 namespace ns {
14   void fn6();
15 }
16 
fn5()17 void fn5() { }
18 namespace ns {
fn6()19   void fn6() { }
20 }
21 
fn7()22 inline 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()31 void c::cfn3() { }
cfn4()32 void c::cfn4() { }
33 
34 static struct {
sfn1__anonfc1a5c61010835   void sfn1() { }
sfn2__anonfc1a5c61010836   static void sfn2() { }
37 } s;
38 
39 template<typename C>
tfn1()40 void tfn1() { }
41 
42 template void tfn1<c>();
43 
44 class d { };
45 template<> void tfn1<d>() { }
46