// { dg-do run } extern "C" int strcmp(const char*, const char*); template <class T> struct S3 { template <class U> static const char* h(U); }; template <> template <> const char* S3<double>::h(int) { return __PRETTY_FUNCTION__; } template <> template <> const char* S3<char>::h(int) { return __PRETTY_FUNCTION__; } int main() { if (strcmp (S3<double>::h(7), "static const char* S3<T>::h(U) [with U = int, T = double]") == 0) return 0; else return 1; }