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();
 | 
						|
}
 |