blob: b8663b61d743fa9fd59eb0d41e62c402c1c9aab1 [file] [log] [blame]
Daniel Dunbar4fcfde42009-11-08 01:45:36 +00001// RUN: clang-cc -emit-llvm -o %t %s
2// RUN: grep "_ZN1CC1ERK1C" %t | count 0
3// RUN: grep "_ZN1SC1ERK1S" %t | count 0
Fariborz Jahanian343a3cf2009-08-14 20:11:43 +00004// RUN: true
Fariborz Jahanian6904cbb2009-08-06 01:02:49 +00005
6extern "C" int printf(...);
7
8
9struct C {
Mike Stump1eb44332009-09-09 15:08:12 +000010 C() : iC(6) {printf("C()\n"); }
11 C(const C& c) { printf("C(const C& c)\n"); }
12 int iC;
Fariborz Jahanian6904cbb2009-08-06 01:02:49 +000013};
14
15C foo() {
16 return C();
17};
18
19class X { // ...
20public:
Mike Stump1eb44332009-09-09 15:08:12 +000021 X(int) {}
22 X(const X&, int i = 1, int j = 2, C c = foo()) {
23 printf("X(const X&, %d, %d, %d)\n", i, j, c.iC);
24 }
Fariborz Jahanian6904cbb2009-08-06 01:02:49 +000025};
26
Fariborz Jahanian343a3cf2009-08-14 20:11:43 +000027
28struct S {
29 S();
30};
31
32S::S() { printf("S()\n"); }
33
34void Call(S) {};
35
Mike Stump1eb44332009-09-09 15:08:12 +000036int main() {
37 X a(1);
38 X b(a, 2);
39 X c = b;
40 X d(a, 5, 6);
41 S s;
42 Call(s);
Fariborz Jahanian6904cbb2009-08-06 01:02:49 +000043}