1// RUN: %clang_cc1 -fsyntax-only -verify %s 2class Z { }; 3 4class Y { 5public: 6 Y(const Z&); 7}; 8 9class X { 10public: 11 X(int); 12 X(const Y&); 13}; 14 15void f(X); // expected-note{{candidate function}} 16 17void g(short s, Y y, Z z) { 18 f(s); 19 f(1.0f); 20 f(y); 21 f(z); // expected-error{{no matching function}} 22} 23 24 25class FromShort { 26public: 27 FromShort(short s); 28}; 29 30class FromShortExplicitly { // expected-note{{candidate constructor (the implicit copy constructor)}} 31public: 32 explicit FromShortExplicitly(short s); 33}; 34 35void explicit_constructor(short s) { 36 FromShort fs1(s); 37 FromShort fs2 = s; 38 FromShortExplicitly fse1(s); 39 FromShortExplicitly fse2 = s; // expected-error{{no viable conversion}} 40} 41 42// PR5519 43struct X1 { X1(const char&); }; 44void x1(X1); 45void y1() { 46 x1(1); 47} 48