53 lines
833 B
C++
53 lines
833 B
C++
// 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();
|
|
}
|