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 Levon struct 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 Levon struct 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