1*67e74705SXin Li // RUN: %clang_cc1 -triple x86_64-apple-darwin -std=c++11 -emit-llvm %s -o - | \
2*67e74705SXin Li // RUN: FileCheck %s
3*67e74705SXin Li // RUN: %clang_cc1 -triple i386-apple-darwin -std=c++11 -emit-llvm %s -o - | \
4*67e74705SXin Li // RUN: FileCheck %s
5*67e74705SXin Li
6*67e74705SXin Li extern "C" int printf(...);
7*67e74705SXin Li
8*67e74705SXin Li int i = 1234;
9*67e74705SXin Li float vf = 1.00;
10*67e74705SXin Li
11*67e74705SXin Li struct S {
SS12*67e74705SXin Li S() : iS(i++), f1(vf++) {printf("S::S()\n");}
~SS13*67e74705SXin Li ~S(){printf("S::~S(iS = %d f1 = %f)\n", iS, f1); }
14*67e74705SXin Li int iS;
15*67e74705SXin Li float f1;
16*67e74705SXin Li };
17*67e74705SXin Li
18*67e74705SXin Li struct M {
19*67e74705SXin Li double dM;
20*67e74705SXin Li S ARR_S[3];
prM21*67e74705SXin Li void pr() {
22*67e74705SXin Li for (int i = 0; i < 3; i++)
23*67e74705SXin Li printf("ARR_S[%d].iS = %d ARR_S[%d].f1 = %f\n", i, ARR_S[i].iS, i, ARR_S[i].f1);
24*67e74705SXin Li
25*67e74705SXin Li for (int i = 0; i < 2; i++)
26*67e74705SXin Li for (int j = 0; j < 3; j++)
27*67e74705SXin Li for (int k = 0; k < 4; k++)
28*67e74705SXin Li printf("MULTI_ARR[%d][%d][%d].iS = %d MULTI_ARR[%d][%d][%d].f1 = %f\n",
29*67e74705SXin Li i,j,k, MULTI_ARR[i][j][k].iS, i,j,k, MULTI_ARR[i][j][k].f1);
30*67e74705SXin Li
31*67e74705SXin Li }
32*67e74705SXin Li
33*67e74705SXin Li S MULTI_ARR[2][3][4];
34*67e74705SXin Li };
35*67e74705SXin Li
main()36*67e74705SXin Li int main() {
37*67e74705SXin Li M m1;
38*67e74705SXin Li m1.pr();
39*67e74705SXin Li }
40*67e74705SXin Li
41*67e74705SXin Li // CHECK: call void @_ZN1SC1Ev
42