// { dg-do link } // Origin: Mark Mitchell template int f(T); template struct S { template friend int f(U) { return 0; } }; int k = f(2); template int g(T); int h = g(7); template int g(T) { S si; return 0; } int main() { }