p3.cpp revision 3573b2c84372d9484296fa658f5276f6c09acb92
13573b2c84372d9484296fa658f5276f6c09acb92Daniel Dunbar// RUN: %clang_cc1 -fsyntax-only -verify %s 2ecd63b87e626bbf6b47d9eb828553d5857fb85eeDouglas Gregor 3ecd63b87e626bbf6b47d9eb828553d5857fb85eeDouglas Gregortemplate<class X, class Y, class Z> X f(Y,Z); 4ecd63b87e626bbf6b47d9eb828553d5857fb85eeDouglas Gregor 5ecd63b87e626bbf6b47d9eb828553d5857fb85eeDouglas Gregorvoid g() { 6ecd63b87e626bbf6b47d9eb828553d5857fb85eeDouglas Gregor f<int,char*,double>("aa",3.0); 7ecd63b87e626bbf6b47d9eb828553d5857fb85eeDouglas Gregor f<int,char*>("aa",3.0); // Z is deduced to be double 8ecd63b87e626bbf6b47d9eb828553d5857fb85eeDouglas Gregor f<int>("aa",3.0); // Y is deduced to be char*, and 9ecd63b87e626bbf6b47d9eb828553d5857fb85eeDouglas Gregor // Z is deduced to be double 10ecd63b87e626bbf6b47d9eb828553d5857fb85eeDouglas Gregor f("aa",3.0); // expected-error{{no matching}} 11b56fd0b9080fae81e36cfd73dd740f0e06a4815dOwen Anderson} 12