1 // RUN: %clang_cc1 %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() { 39 this->MPR(); this->PPR(); this->QPR(); 40 IQPR(); 41 printf("iM = %d\n", iM); 42 printf("iP = %d\n", iP); 43 printf("iQ = %d\n", iQ); 44 printf("iL = %d\n", iL); 45 printf("iIQ = %d\n", iIQ); 46 } 47 }; 48 49 int main() { 50 N n1; 51 n1.PR(); 52 } 53