blob: 149b65c8d71d3fe3b778347018f37d6acf41f38e [file] [log] [blame]
Daniel Dunbard7d5f022009-03-24 02:24:46 +00001// RUN: clang-cc -fsyntax-only -verify %s
Argyrios Kyrtzidis73a0d882008-10-06 17:10:33 +00002
3int x(1);
Argyrios Kyrtzidis3f2a8a02008-10-07 10:21:57 +00004int (x2)(1);
Argyrios Kyrtzidis73a0d882008-10-06 17:10:33 +00005
6void f() {
7 int x(1);
Douglas Gregor3eb1c542008-12-17 16:19:15 +00008 int (x2)(1);
Argyrios Kyrtzidis73a0d882008-10-06 17:10:33 +00009 for (int x(1);;) {}
10}
Douglas Gregor18fe5682008-11-03 20:45:27 +000011
12class Y {
13 explicit Y(float);
14};
15
16class X { // expected-note{{candidate function}}
17public:
18 explicit X(int); // expected-note{{candidate function}}
19 X(float, float, float); // expected-note{{candidate function}}
20 X(float, Y); // expected-note{{candidate function}}
21};
22
Douglas Gregorf03d7c72008-11-05 15:29:30 +000023class Z {
Douglas Gregor18fe5682008-11-03 20:45:27 +000024public:
Douglas Gregorf03d7c72008-11-05 15:29:30 +000025 Z(int);
Douglas Gregor18fe5682008-11-03 20:45:27 +000026};
27
28void g() {
29 X x1(5);
30 X x2(1.0, 3, 4.2);
31 X x3(1.0, 1.0); // expected-error{{no matching constructor for initialization of 'x3'; candidates are:}}
32 Y y(1.0);
33 X x4(3.14, y);
34
Douglas Gregorf03d7c72008-11-05 15:29:30 +000035 Z z; // expected-error{{no matching constructor for initialization of 'z'}}
Douglas Gregor18fe5682008-11-03 20:45:27 +000036}