// RUN: %clang_cc1 -fsyntax-only -verify %s | |
// expected-no-diagnostics | |
template <class F1> int foo1(F1 X1); | |
template <int A1> struct A { | |
template <class F2> friend int foo1(F2 X2) { | |
return A1; | |
} | |
}; | |
template struct A<1>; | |
int main() { | |
foo1(1.0); | |
} | |
template <class F1> int foo2(F1 X1); | |
template <int A1> struct B { | |
template <class F2> friend int foo2(F2 X2) { | |
return A1; | |
} | |
}; | |
template struct B<1>; | |
template int foo2<float>(float X1); |