p3.cpp revision ecd63b87e626bbf6b47d9eb828553d5857fb85ee
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// RUN: clang-cc -fsyntax-only -verify %s 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)template<class X, class Y, class Z> X f(Y,Z); 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void g() { 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) f<int,char*,double>("aa",3.0); 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) f<int,char*>("aa",3.0); // Z is deduced to be double 82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) f<int>("aa",3.0); // Y is deduced to be char*, and 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Z is deduced to be double 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) f("aa",3.0); // expected-error{{no matching}} 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}