blob: aee7a122325cb0127aa90eed8ae8ae5e058380e6 [file] [log] [blame]
Fariborz Jahanianc238a792009-07-30 00:10:25 +00001// RUN: clang-cc %s -emit-llvm -o %t
2
3extern "C" int printf(...);
4
5struct M {
6 M(int i){ iM = i; }
7 int iM;
8 void MPR() { printf("iM = %d\n", iM); }
9
10};
11
12struct Q {
13 Q(int i){ iQ = i; }
14 int iQ;
15 void QPR() { printf("iQ = %d\n", iQ); }
16};
17
18struct IQ {
19 IQ(int i) { iIQ = i; }
20 void IQPR() { printf("iIQ = %d\n", iIQ); }
21 int iIQ;
22};
23
24struct L : IQ {
25 L(int i) : IQ(i+100) { iL = i; }
26 int iL;
27};
28
29struct P : Q, L {
30 P(int i) : Q(i+100), L(i+200) { iP = i; }
31 int iP;
32 void PPR() { printf("iP = %d\n", iP); }
33};
34
35
36struct N : M,P {
37 N() : M(100), P(200) {}
38 void PR() { this->MPR(); this->PPR(); this->QPR();
39 IQPR();
40 printf("iM = %d\n", iM);
41 printf("iP = %d\n", iP);
42 printf("iQ = %d\n", iQ);
43 printf("iL = %d\n", iL);
44 printf("iIQ = %d\n", iIQ);
45 }
46};
47
48int main() {
49 N n1;
50 n1.PR();
51}