// RUN: %clang_cc1 -fsyntax-only %s
template<typename T>
T f0(T, int);
void test_f0() {
int (*f0a)(int, int) = f0;
int (*f0b)(int, int) = &f0;
float (*f0c)(float, int) = &f0;
}
template<typename T> T f1(T, int);
template<typename T> T f1(T);
void test_f1() {
float (*f1a)(float, int) = f1;
float (*f1b)(float, int) = &f1;
float (*f1c)(float) = f1;
float (*f1d)(float) = (f1);
float (*f1e)(float) = &f1;
float (*f1f)(float) = (&f1);
}