1ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao// RUN: %clang_cc1 %s -emit-llvm -o %t 2ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 3ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoextern "C" int printf(...); 4ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 5ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct M { 6ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao M(int i){ iM = i; } 7ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao int iM; 8ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao void MPR() { printf("iM = %d\n", iM); } 9ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 10ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}; 11ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 12ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct Q { 13ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao Q(int i){ iQ = i; } 14ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao int iQ; 15ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao void QPR() { printf("iQ = %d\n", iQ); } 16ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}; 17ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 18ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct IQ { 19ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao IQ(int i) { iIQ = i; } 20ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao void IQPR() { printf("iIQ = %d\n", iIQ); } 21ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao int iIQ; 22ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}; 23ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 24ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct L : IQ { 25ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao L(int i) : IQ(i+100) { iL = i; } 26ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao int iL; 27ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}; 28ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 29ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct P : Q, L { 30ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao P(int i) : Q(i+100), L(i+200) { iP = i; } 31ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao int iP; 32ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao void PPR() { printf("iP = %d\n", iP); } 33ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}; 34ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 35ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 36ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaostruct N : M,P { 37ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao N() : M(100), P(200) {} 38ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao void PR() { 39ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao this->MPR(); this->PPR(); this->QPR(); 40ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao IQPR(); 41ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao printf("iM = %d\n", iM); 42ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao printf("iP = %d\n", iP); 43ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao printf("iQ = %d\n", iQ); 44ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao printf("iL = %d\n", iL); 45ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao printf("iIQ = %d\n", iIQ); 46ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao } 47ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao}; 48ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao 49ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liaoint main() { 50ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao N n1; 51ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao n1.PR(); 52ea285162342df160e7860e26528bc7110bc6c0cdShih-wei Liao} 53