// RUN: %clang_cc1 -fsyntax-only -verify -Wall %s
namespacetest1{staticvoidf(){}// expected-warning {{function 'f' is not needed and will not be emitted}}
staticvoidf();template<typename T>voidfoo(){f();}}namespacetest1_template{template<typename T>staticvoidf(){}template<>voidf<int>(){}// expected-warning {{function 'f<int>' is not needed and will not be emitted}}
template<typename T>voidfoo(){f<int>();f<long>();}}// namespace test1_template
namespacetest2{staticvoidf(){}staticvoidf();staticvoidg(){f();}voidh(){g();}}namespacetest3{staticvoidf();template<typename T>staticvoidg(){f();}staticvoidf(){}voidh(){g<int>();}}namespacetest4{staticvoidf();staticvoidf();template<typename T>staticvoidg(){f();}staticvoidf(){}voidh(){g<int>();}}namespacetest4{staticvoidfunc();voidbar(){voidfunc();func();}staticvoidfunc(){}}