forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			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();
 | |
| }
 |