1 // RUN: %clang_cc1 -fsyntax-only -verify -Wall %s 2 3 namespace test1 { f()4 static void f() {} // expected-warning {{is not needed and will not be emitted}} 5 static void f(); 6 template <typename T> foo()7 void foo() { 8 f(); 9 } 10 } 11 12 namespace test2 { f()13 static void f() {} 14 static void f(); g()15 static void g() { f(); } h()16 void h() { g(); } 17 } 18 19 namespace test3 { 20 static void f(); 21 template<typename T> g()22 static void g() { 23 f(); 24 } f()25 static void f() { 26 } h()27 void h() { 28 g<int>(); 29 } 30 } 31 32 namespace test4 { 33 static void f(); 34 static void f(); 35 template<typename T> g()36 static void g() { 37 f(); 38 } f()39 static void f() { 40 } h()41 void h() { 42 g<int>(); 43 } 44 } 45 46 namespace test4 { 47 static void func(); bar()48 void bar() { 49 void func(); 50 func(); 51 } func()52 static void func() {} 53 } 54