// RUN: %clang_cc1 %s -emit-llvm -o %t | |
extern "C" int printf(...); | |
struct M { | |
M(int i){ iM = i; } | |
int iM; | |
void MPR() { printf("iM = %d\n", iM); } | |
}; | |
struct Q { | |
Q(int i){ iQ = i; } | |
int iQ; | |
void QPR() { printf("iQ = %d\n", iQ); } | |
}; | |
struct IQ { | |
IQ(int i) { iIQ = i; } | |
void IQPR() { printf("iIQ = %d\n", iIQ); } | |
int iIQ; | |
}; | |
struct L : IQ { | |
L(int i) : IQ(i+100) { iL = i; } | |
int iL; | |
}; | |
struct P : Q, L { | |
P(int i) : Q(i+100), L(i+200) { iP = i; } | |
int iP; | |
void PPR() { printf("iP = %d\n", iP); } | |
}; | |
struct N : M,P { | |
N() : M(100), P(200) {} | |
void PR() { | |
this->MPR(); this->PPR(); this->QPR(); | |
IQPR(); | |
printf("iM = %d\n", iM); | |
printf("iP = %d\n", iP); | |
printf("iQ = %d\n", iQ); | |
printf("iL = %d\n", iL); | |
printf("iIQ = %d\n", iIQ); | |
} | |
}; | |
int main() { | |
N n1; | |
n1.PR(); | |
} |