1*1f5207b7SJohn Levon struct s { 2*1f5207b7SJohn Levon int a, b, c; 3*1f5207b7SJohn Levon }; 4*1f5207b7SJohn Levon s_init_first(int a)5*1f5207b7SJohn Levonstruct s s_init_first(int a) 6*1f5207b7SJohn Levon { 7*1f5207b7SJohn Levon struct s s = { .a = a, }; 8*1f5207b7SJohn Levon return s; 9*1f5207b7SJohn Levon } 10*1f5207b7SJohn Levon s_init_third(int a)11*1f5207b7SJohn Levonstruct s s_init_third(int a) 12*1f5207b7SJohn Levon { 13*1f5207b7SJohn Levon struct s s = { .c = a, }; 14*1f5207b7SJohn Levon return s; 15*1f5207b7SJohn Levon } 16*1f5207b7SJohn Levon 17*1f5207b7SJohn Levon /* 18*1f5207b7SJohn Levon * check-name: struct implicit init zero needed 19*1f5207b7SJohn Levon * check-command: test-linearize -Wno-decl $file 20*1f5207b7SJohn Levon * 21*1f5207b7SJohn Levon * check-output-start 22*1f5207b7SJohn Levon s_init_first: 23*1f5207b7SJohn Levon .L0: 24*1f5207b7SJohn Levon <entry-point> 25*1f5207b7SJohn Levon store.96 $0 -> 0[s] 26*1f5207b7SJohn Levon store.32 %arg1 -> 0[s] 27*1f5207b7SJohn Levon load.96 %r2 <- 0[s] 28*1f5207b7SJohn Levon ret.96 %r2 29*1f5207b7SJohn Levon 30*1f5207b7SJohn Levon 31*1f5207b7SJohn Levon s_init_third: 32*1f5207b7SJohn Levon .L2: 33*1f5207b7SJohn Levon <entry-point> 34*1f5207b7SJohn Levon store.96 $0 -> 0[s] 35*1f5207b7SJohn Levon store.32 %arg1 -> 8[s] 36*1f5207b7SJohn Levon load.96 %r5 <- 0[s] 37*1f5207b7SJohn Levon ret.96 %r5 38*1f5207b7SJohn Levon 39*1f5207b7SJohn Levon 40*1f5207b7SJohn Levon * check-output-end 41*1f5207b7SJohn Levon */ 42