blob: 7e4c14c0b6285b57397ceab4e0bc2be4d911816a [file] [log] [blame]
Fariborz Jahanian4985b332009-08-13 21:09:41 +00001// RUN: clang-cc -emit-llvm -o %t %s &&
2// RUN: grep "_ZN1XaSERK1X" %t | count 0
3
4extern "C" int printf(...);
5
Fariborz Jahanian89d01eb2009-08-13 21:38:50 +00006struct B {
7 B() : B1(3.14), B2(3.15) {}
8 float B1;
9 float B2;
10 void pr() {
11 printf("B1 = %f B2 = %f\n", B1, B2);
12 }
13};
14
15struct M {
16 M() : M1(10), M2(11) {}
17 int M1;
18 int M2;
19 void pr() {
20 printf("M1 = %d M2 = %d\n", M1, M2);
21 }
22};
23
24struct N : B {
25 N() : N1(20), N2(21) {}
26 int N1;
27 int N2;
28 void pr() {
29 printf("N1 = %d N2 = %d\n", N1, N2);
30 B::pr();
31 }
32};
33
34struct Q {
35 Q() : Q1(30), Q2(31) {}
36 int Q1;
37 int Q2;
38 void pr() {
39 printf("Q1 = %d Q2 = %d\n", Q1, Q2);
40 }
41};
42
43
44struct X : M , N {
Fariborz Jahanian4985b332009-08-13 21:09:41 +000045 X() : d(0.0), d1(1.1), d2(1.2), d3(1.3) {}
46 double d;
47 double d1;
48 double d2;
49 double d3;
50 void pr() {
51 printf("d = %f d1 = %f d2 = %f d3 = %f\n", d, d1,d2,d3);
Fariborz Jahanian89d01eb2009-08-13 21:38:50 +000052 M::pr(); N::pr();
53 q1.pr(); q2.pr();
Fariborz Jahanian4985b332009-08-13 21:09:41 +000054 }
Fariborz Jahanian89d01eb2009-08-13 21:38:50 +000055
56 Q q1, q2;
Fariborz Jahanian4985b332009-08-13 21:09:41 +000057};
58
59
60X srcX;
61X dstX;
62X dstY;
63
64int main() {
65 dstY = dstX = srcX;
66 srcX.pr();
67 dstX.pr();
68 dstY.pr();
69}
70