constructor-init.cpp revision 1c698e0d4f9bf3d141c019d33d9040085a8a67dd
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 printf("iQ = %d\n", iQ); 39 printf("iP = %d\n", iP); 40 printf("iM = %d\n", iM); 41 printf("iQ = %d\n", (*this).iQ); 42 printf("iP = %d\n", ((*this)).iP); 43 printf("iM = %d\n", this->iM); 44 } 45 float ld; 46 float ff; 47}; 48 49int main() { 50 M m1; 51 52 N n1; 53 n1.PR(); 54} 55 56