1 // RUN: clang-cc -fsyntax-only -verify %s 2 3 struct X { 4 template<typename T> T& f0(T); 5 6 void g0(int i, double d) { 7 int &ir = f0(i); 8 double &dr = f0(d); 9 } 10 11 template<typename T> T& f1(T); 12 template<typename T, typename U> U& f1(T, U); 13 14 void g1(int i, double d) { 15 int &ir1 = f1(i); 16 int &ir2 = f1(d, i); 17 int &ir3 = f1(i, i); 18 } 19 }; 20 21 void test_X_f0(X x, int i, float f) { 22 int &ir = x.f0(i); 23 float &fr = x.f0(f); 24 } 25 26 void test_X_f1(X x, int i, float f) { 27 int &ir1 = x.f1(i); 28 int &ir2 = x.f1(f, i); 29 int &ir3 = x.f1(i, i); 30 } 31