1651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++11 -emit-llvm %s -o - | \ 2651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: FileCheck %s 3651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: %clang_cc1 -triple i386-apple-darwin -std=c++11 -emit-llvm %s -o - | \ 4651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// RUN: FileCheck %s 5995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian 6995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanianextern "C" int printf(...); 7995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian 8995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanianint i = 1234; 9995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanianfloat vf = 1.00; 10995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian 11995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanianstruct S { 12995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian S() : iS(i++), f1(vf++) {printf("S::S()\n");} 131c536bf6bbb0cdc039cff754825b36f9abfe0629Fariborz Jahanian ~S(){printf("S::~S(iS = %d f1 = %f)\n", iS, f1); } 14995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian int iS; 15995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian float f1; 16995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian}; 17995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian 18995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanianstruct M { 19995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian double dM; 20995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian S ARR_S[3]; 21995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian void pr() { 22995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian for (int i = 0; i < 3; i++) 23995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian printf("ARR_S[%d].iS = %d ARR_S[%d].f1 = %f\n", i, ARR_S[i].iS, i, ARR_S[i].f1); 24995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian 25995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian for (int i = 0; i < 2; i++) 26995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian for (int j = 0; j < 3; j++) 27995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian for (int k = 0; k < 4; k++) 28995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian printf("MULTI_ARR[%d][%d][%d].iS = %d MULTI_ARR[%d][%d][%d].f1 = %f\n", 29995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian i,j,k, MULTI_ARR[i][j][k].iS, i,j,k, MULTI_ARR[i][j][k].f1); 30995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian 31995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian } 32995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian 33995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian S MULTI_ARR[2][3][4]; 34995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian}; 35995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian 36995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanianint main() { 371eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump M m1; 381eb4433ac451dc16f4133a88af2d002ac26c58efMike Stump m1.pr(); 39995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian} 40995d2818a11395b15995694a30f842a0e4fdee4fFariborz Jahanian 41651f13cea278ec967336033dd032faef0e9fc2ecStephen Hines// CHECK: call void @_ZN1SC1Ev 42