constructor-for-array-members.cpp revision 995d2818a11395b15995694a30f842a0e4fdee4f
1// RUN: clang-cc -triple x86_64-apple-darwin -std=c++0x -S %s -o %t-64.s && 2// RUN: FileCheck -check-prefix LP64 --input-file=%t-64.s %s && 3// RUN: clang-cc -triple i386-apple-darwin -std=c++0x -S %s -o %t-32.s && 4// RUN: FileCheck -check-prefix LP32 --input-file=%t-32.s %s && 5// RUN: true 6 7extern "C" int printf(...); 8 9int i = 1234; 10float vf = 1.00; 11 12struct S { 13 S() : iS(i++), f1(vf++) {printf("S::S()\n");} 14// ~S(){printf("S::~S()\n"); } 15 int iS; 16 float f1; 17}; 18 19struct M { 20 double dM; 21 S ARR_S[3]; 22 void pr() { 23 for (int i = 0; i < 3; i++) 24 printf("ARR_S[%d].iS = %d ARR_S[%d].f1 = %f\n", i, ARR_S[i].iS, i, ARR_S[i].f1); 25 26 for (int i = 0; i < 2; i++) 27 for (int j = 0; j < 3; j++) 28 for (int k = 0; k < 4; k++) 29 printf("MULTI_ARR[%d][%d][%d].iS = %d MULTI_ARR[%d][%d][%d].f1 = %f\n", 30 i,j,k, MULTI_ARR[i][j][k].iS, i,j,k, MULTI_ARR[i][j][k].f1); 31 32 } 33 34 S MULTI_ARR[2][3][4]; 35}; 36 37int main() { 38 M m1; 39 m1.pr(); 40 41} 42 43// CHECK-LP64: call __ZN1SC1Ev 44 45// CHECK-LP32: call L__ZN1SC1Ev 46