1 // RUN: clang-cc -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 
17 void 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 {
31 public:
32   explicit FromShortExplicitly(short s);
33 };
34 
35 void explicit_constructor(short s) {
36   FromShort fs1(s);
37   FromShort fs2 = s;
38   FromShortExplicitly fse1(s);
39   FromShortExplicitly fse2 = s; // expected-error{{error: cannot initialize 'fse2' with an lvalue of type 'short'}}
40 }
41