constructor-init.cpp revision 742cd1b7bb86b52b23b335d47abbd842dac0e1bf
1// RUN: clang-cc %s -emit-llvm -o %t 2 3extern "C" int printf(...); 4 5struct M { 6 M() { printf("M()\n"); } 7 M(int i) { iM = i; printf("M(%d)\n", i); } 8 int iM; 9 void MPR() {printf("iM = %d\n", iM); }; 10}; 11 12struct P { 13 P() { printf("P()\n"); } 14 P(int i) { iP = i; printf("P(%d)\n", i); } 15 int iP; 16 void PPR() {printf("iP = %d\n", iP); }; 17}; 18 19struct Q { 20 Q() { printf("Q()\n"); } 21 Q(int i) { iQ = i; printf("Q(%d)\n", i); } 22 int iQ; 23 void QPR() {printf("iQ = %d\n", iQ); }; 24}; 25 26struct N : M , P, Q { 27 N() : f1(1.314), P(2000), ld(00.1234+f1), M(1000), Q(3000), 28 d1(3.4567), i1(1234), m1(100) { printf("N()\n"); } 29 M m1; 30 M m2; 31 float f1; 32 int i1; 33 float d1; 34 void PR() { printf("f1 = %f d1 = %f i1 = %d ld = %f \n", f1,d1,i1, ld); 35 MPR(); 36 PPR(); 37 QPR(); 38 } 39 float ld; 40 float ff; 41}; 42 43int main() { 44 M m1; 45 46 N n1; 47 n1.PR(); 48} 49 50