1*1f5207b7SJohn Levon static int ref[] = {
2*1f5207b7SJohn Levon 	[1] = 3,
3*1f5207b7SJohn Levon 	[2] = 3,
4*1f5207b7SJohn Levon 	[3] = 3,
5*1f5207b7SJohn Levon 	[2] = 2,		/* check-should-warn */
6*1f5207b7SJohn Levon 	[1] = 1,		/* check-should-warn */
7*1f5207b7SJohn Levon };
8*1f5207b7SJohn Levon 
9*1f5207b7SJohn Levon static int foo[] = {
10*1f5207b7SJohn Levon 	[1 ... 3] = 3,
11*1f5207b7SJohn Levon };
12*1f5207b7SJohn Levon 
13*1f5207b7SJohn Levon static int foz[4] = {
14*1f5207b7SJohn Levon 	[0 ... 3] = 3,
15*1f5207b7SJohn Levon 	[0] = 0,
16*1f5207b7SJohn Levon 	[1] = 0,
17*1f5207b7SJohn Levon 	[2 ... 3] = 1,
18*1f5207b7SJohn Levon 	[2] = 3,		/* check-should-warn */
19*1f5207b7SJohn Levon 	[3] = 3,		/* check-should-warn */
20*1f5207b7SJohn Levon };
21*1f5207b7SJohn Levon 
22*1f5207b7SJohn Levon static int bar[] = {
23*1f5207b7SJohn Levon 	[1 ... 3] = 3,
24*1f5207b7SJohn Levon 	[1]       = 1,		/* check-should-warn */
25*1f5207b7SJohn Levon 	[2]       = 2,		/* check-should-warn */
26*1f5207b7SJohn Levon 	[2 ... 4] = 2,		/* check-should-warn */
27*1f5207b7SJohn Levon 	[2 ... 3] = 2,		/* check-should-warn */
28*1f5207b7SJohn Levon 	[4] = 4,		/* check-should-warn */
29*1f5207b7SJohn Levon 	[0] = 0,
30*1f5207b7SJohn Levon 	[5] = 5,
31*1f5207b7SJohn Levon };
32*1f5207b7SJohn Levon 
33*1f5207b7SJohn Levon static int baz[3][3] = {
34*1f5207b7SJohn Levon 	[0 ... 2][0 ... 2] = 0,
35*1f5207b7SJohn Levon 	[0] = { 0, 0, 0, },	/* check-should-warn */
36*1f5207b7SJohn Levon 	[0][0] = 1,		/* check-should-warn */
37*1f5207b7SJohn Levon 	[1] = { 0, 0, 0, },	/* check-should-warn */
38*1f5207b7SJohn Levon 	[1][0] = 1,		/* check-should-warn */
39*1f5207b7SJohn Levon 	[1][1] = 1,		/* check-should-warn */
40*1f5207b7SJohn Levon 	[1 ... 2][1 ... 2] = 2,
41*1f5207b7SJohn Levon };
42*1f5207b7SJohn Levon 
43*1f5207b7SJohn Levon 
44*1f5207b7SJohn Levon struct s {
45*1f5207b7SJohn Levon 	int i;
46*1f5207b7SJohn Levon 	int a[2];
47*1f5207b7SJohn Levon };
48*1f5207b7SJohn Levon 
49*1f5207b7SJohn Levon static struct s s = {
50*1f5207b7SJohn Levon 	.a[0] = 0,
51*1f5207b7SJohn Levon 	.a[1] = 1,
52*1f5207b7SJohn Levon };
53*1f5207b7SJohn Levon 
54*1f5207b7SJohn Levon static struct s a[2] = {
55*1f5207b7SJohn Levon 	[0].i = 0,
56*1f5207b7SJohn Levon 	[1].i = 1,
57*1f5207b7SJohn Levon 	[0].a[0] = 2,
58*1f5207b7SJohn Levon 	[0].a[1] = 3,
59*1f5207b7SJohn Levon };
60*1f5207b7SJohn Levon 
61*1f5207b7SJohn Levon static struct s b[2] = {
62*1f5207b7SJohn Levon 	[0 ... 1] = { 0, { 1, 2 }, },
63*1f5207b7SJohn Levon 	[0].i = 0,
64*1f5207b7SJohn Levon 	[1].i = 1,
65*1f5207b7SJohn Levon 	[0].a[0] = 2,
66*1f5207b7SJohn Levon 	[0].a[1] = 3,
67*1f5207b7SJohn Levon };
68*1f5207b7SJohn Levon 
69*1f5207b7SJohn Levon /*
70*1f5207b7SJohn Levon  * check-name: field-override
71*1f5207b7SJohn Levon  * check-command: sparse -Woverride-init -Woverride-init-all $file
72*1f5207b7SJohn Levon  *
73*1f5207b7SJohn Levon  * check-error-start
74*1f5207b7SJohn Levon field-override.c:2:10: warning: Initializer entry defined twice
75*1f5207b7SJohn Levon field-override.c:6:10:   also defined here
76*1f5207b7SJohn Levon field-override.c:3:10: warning: Initializer entry defined twice
77*1f5207b7SJohn Levon field-override.c:5:10:   also defined here
78*1f5207b7SJohn Levon field-override.c:17:10: warning: Initializer entry defined twice
79*1f5207b7SJohn Levon field-override.c:18:10:   also defined here
80*1f5207b7SJohn Levon field-override.c:17:10: warning: Initializer entry defined twice
81*1f5207b7SJohn Levon field-override.c:19:10:   also defined here
82*1f5207b7SJohn Levon field-override.c:23:10: warning: Initializer entry defined twice
83*1f5207b7SJohn Levon field-override.c:24:10:   also defined here
84*1f5207b7SJohn Levon field-override.c:23:10: warning: Initializer entry defined twice
85*1f5207b7SJohn Levon field-override.c:25:10:   also defined here
86*1f5207b7SJohn Levon field-override.c:23:10: warning: Initializer entry defined twice
87*1f5207b7SJohn Levon field-override.c:26:10:   also defined here
88*1f5207b7SJohn Levon field-override.c:26:10: warning: Initializer entry defined twice
89*1f5207b7SJohn Levon field-override.c:27:10:   also defined here
90*1f5207b7SJohn Levon field-override.c:26:10: warning: Initializer entry defined twice
91*1f5207b7SJohn Levon field-override.c:28:10:   also defined here
92*1f5207b7SJohn Levon field-override.c:35:10: warning: Initializer entry defined twice
93*1f5207b7SJohn Levon field-override.c:36:10:   also defined here
94*1f5207b7SJohn Levon field-override.c:37:10: warning: Initializer entry defined twice
95*1f5207b7SJohn Levon field-override.c:38:10:   also defined here
96*1f5207b7SJohn Levon field-override.c:37:10: warning: Initializer entry defined twice
97*1f5207b7SJohn Levon field-override.c:39:10:   also defined here
98*1f5207b7SJohn Levon field-override.c:37:10: warning: Initializer entry defined twice
99*1f5207b7SJohn Levon field-override.c:40:10:   also defined here
100*1f5207b7SJohn Levon  * check-error-end
101*1f5207b7SJohn Levon  */
102