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