1 // RUN: %clang_cc1 -fsyntax-only -verify %s 2 class Z { }; 3 4 class Y { 5 public: 6 Y(const Z&); 7 }; 8 9 class X { 10 public: 11 X(int); 12 X(const Y&); 13 }; 14 15 void f(X); // expected-note{{candidate function}} 16 g(short s,Y y,Z z)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 25 class FromShort { 26 public: 27 FromShort(short s); 28 }; 29 30 class FromShortExplicitly { // expected-note{{candidate constructor (the implicit copy constructor)}} 31 public: 32 explicit FromShortExplicitly(short s); 33 }; 34 explicit_constructor(short s)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 43 struct X1 { X1(const char&); }; 44 void x1(X1); y1()45void y1() { 46 x1(1); 47 } 48