Home | History | Annotate | Download | only in CodeGenCXX
      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