|  | // RUN: %clang_cc1 -fsyntax-only -verify -Wunneeded-member-function -Wno-unused-template %s | 
|  |  | 
|  | namespace { | 
|  | class A { | 
|  | void g() {} // expected-warning {{member function 'g' is not needed and will not be emitted}} | 
|  | template <typename T> void gt(T) {} | 
|  | template <> void gt<int>(int) {} // expected-warning {{member function 'gt<int>' is not needed and will not be emitted}} | 
|  | template <> void gt(float) {}    // expected-warning {{member function 'gt<float>' is not needed and will not be emitted}} | 
|  |  | 
|  | template <typename T> | 
|  | void foo() { | 
|  | g(); | 
|  | gt(0); | 
|  | gt(0.0f); | 
|  | gt(0.0); | 
|  | } | 
|  | }; | 
|  | template void A::gt(double); // no-warning | 
|  | } |