53 lines · cpp
1// RUN: %clang_cc1 %s -emit-llvm -o %t2 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() {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 49int main() {50 N n1;51 n1.PR();52}53