1 // RUN: clang-cc %s -emit-llvm -o %t 2 3 extern "C" int printf(...); 4 5 struct M { 6 M(int i){ iM = i; } 7 int iM; 8 void MPR() { printf("iM = %d\n", iM); } 9 10 }; 11 12 struct Q { 13 Q(int i){ iQ = i; } 14 int iQ; 15 void QPR() { printf("iQ = %d\n", iQ); } 16 }; 17 18 struct IQ { 19 IQ(int i) { iIQ = i; } 20 void IQPR() { printf("iIQ = %d\n", iIQ); } 21 int iIQ; 22 }; 23 24 struct L : IQ { 25 L(int i) : IQ(i+100) { iL = i; } 26 int iL; 27 }; 28 29 struct 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 36 struct 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 48 int main() { 49 N n1; 50 n1.PR(); 51 } 52