// { dg-options "-Wmissing-declarations" } void fn1() { } // { dg-warning "no previous declaration" } namespace ns { void fn2() { } // { dg-warning "no previous declaration" } } namespace { void fn3() { } } static void fn4() { } void fn5(); namespace ns { void fn6(); } void fn5() { } namespace ns { void fn6() { } } inline void fn7() { } class c { void cfn1() { } static void cfn2() { } void cfn3(); static void cfn4(); }; void c::cfn3() { } void c::cfn4() { } static struct { void sfn1() { } static void sfn2() { } } s; template void tfn1() { } template void tfn1(); class d { }; template<> void tfn1() { }