// { dg-do compile { target c++11 } } template struct Tuple { }; template char& g(Tuple); // #1 template short& g(Tuple); // #2 template int& g(Tuple); // #3 void f() { // char& x1 = g(Tuple<>()); // calls #1 short& y1 = g(Tuple()); // calls #2 // int& z1 = g(Tuple()); // calls #3 // int& z2 = g(Tuple()); // calls #3 // int& z3 = g(Tuple()); // calls #3 }