1 /* { dg-options "-Wmissing-braces -fdiagnostics-show-caret" } */
2
3 struct sf2 { int i; int j; };
4 struct sf3 { int i; int j; int k; };
5 struct sa2 { int arr[2]; };
6 struct sa3 { int arr[3]; };
7
8 int arr_12[12] = \
9 { 0, 1, 2, 3, 4, 5,
10 6, 7, 8, 9, 10, 11};
11
12 int arr_12_1[12][1] = \
13 { 0, 1, 2, 3, 4, 5, /* { dg-warning "missing braces around initializer" } */
14 6, 7, 8, 9, 10, 11};
15 /* { dg-begin-multiline-output "" }
16 { 0, 1, 2, 3, 4, 5,
17 ^
18 {} {} {} {} {} {}
19 6, 7, 8, 9, 10, 11};
20 {} {} {} {} { } { }
21 { dg-end-multiline-output "" } */
22
23 int arr_1_12[1][12] = \
24 { 0, 1, 2, 3, 4, 5, /* { dg-warning "missing braces around initializer" } */
25 6, 7, 8, 9, 10, 11};
26 /* { dg-begin-multiline-output "" }
27 { 0, 1, 2, 3, 4, 5,
28 ^
29 {
30 6, 7, 8, 9, 10, 11};
31 }
32 { dg-end-multiline-output "" } */
33
34 int arr_2_6[2][6] = \
35 { 0, 1, 2, 3, 4, 5, /* { dg-warning "missing braces around initializer" } */
36 6, 7, 8, 9, 10, 11};
37 /* { dg-begin-multiline-output "" }
38 { 0, 1, 2, 3, 4, 5,
39 ^
40 { }
41 6, 7, 8, 9, 10, 11};
42 { }
43 { dg-end-multiline-output "" } */
44
45 int arr_2_2_3[2][2][3] = \
46 { 0, 1, 2, 3, 4, 5, /* { dg-warning "missing braces around initializer" } */
47 6, 7, 8, 9, 10, 11};
48 /* { dg-begin-multiline-output "" }
49 { 0, 1, 2, 3, 4, 5,
50 ^
51 {{ } { }}
52 6, 7, 8, 9, 10, 11};
53 {{ } { }}
54 { dg-end-multiline-output "" } */
55
56 int arr_2_3_2[2][3][2] = \
57 { 0, 1, 2, 3, 4, 5, /* { dg-warning "missing braces around initializer" } */
58 6, 7, 8, 9, 10, 11};
59 /* { dg-begin-multiline-output "" }
60 { 0, 1, 2, 3, 4, 5,
61 ^
62 {{ } { } { }}
63 6, 7, 8, 9, 10, 11};
64 {{ } { } { }}
65 { dg-end-multiline-output "" } */
66
67 int arr_6_2[6][2] = \
68 { 0, 1, 2, 3, 4, 5, /* { dg-warning "missing braces around initializer" } */
69 6, 7, 8, 9, 10, 11};
70 /* { dg-begin-multiline-output "" }
71 { 0, 1, 2, 3, 4, 5,
72 ^
73 { } { } { }
74 6, 7, 8, 9, 10, 11};
75 { } { } { }
76 { dg-end-multiline-output "" } */
77
78 int arr_3_2_2[3][2][2] = \
79 { 0, 1, 2, 3, 4, 5, /* { dg-warning "missing braces around initializer" } */
80 6, 7, 8, 9, 10, 11};
81 /* { dg-begin-multiline-output "" }
82 { 0, 1, 2, 3, 4, 5,
83 ^
84 {{ } { }}{{ }
85 6, 7, 8, 9, 10, 11};
86 { }}{{ } { }}
87 { dg-end-multiline-output "" } */
88
89 int arr_3_4[3][4] = \
90 { 0, 1, 2, 3, 4, 5, /* { dg-warning "missing braces around initializer" } */
91 6, 7, 8, 9, 10, 11};
92 /* { dg-begin-multiline-output "" }
93 { 0, 1, 2, 3, 4, 5,
94 ^
95 { } {
96 6, 7, 8, 9, 10, 11};
97 } { }
98 { dg-end-multiline-output "" } */
99
100 int arr_4_3[4][3] = \
101 { 0, 1, 2, 3, 4, 5, /* { dg-warning "missing braces around initializer" } */
102 6, 7, 8, 9, 10, 11};
103 /* { dg-begin-multiline-output "" }
104 { 0, 1, 2, 3, 4, 5,
105 ^
106 { } { }
107 6, 7, 8, 9, 10, 11};
108 { } { }
109 { dg-end-multiline-output "" } */
110
111 int arr_2_1_6[2][1][6] = \
112 { 0, 1, 2, 3, 4, 5, /* { dg-warning "missing braces around initializer" } */
113 6, 7, 8, 9, 10, 11};
114 /* { dg-begin-multiline-output "" }
115 { 0, 1, 2, 3, 4, 5,
116 ^
117 {{ }}
118 6, 7, 8, 9, 10, 11};
119 {{ }}
120 { dg-end-multiline-output "" } */
121
122 struct sf2 arr_6_sf2[6] = \
123 { 0, 1, 2, 3, 4, 5, /* { dg-warning "missing braces around initializer" } */
124 6, 7, 8, 9, 10, 11};
125 /* { dg-begin-multiline-output "" }
126 { 0, 1, 2, 3, 4, 5,
127 ^
128 { } { } { }
129 6, 7, 8, 9, 10, 11};
130 { } { } { }
131 { dg-end-multiline-output "" } */
132
133 struct sf3 arr_4_sf3[4] = \
134 { 0, 1, 2, 3, 4, 5, /* { dg-warning "missing braces around initializer" } */
135 6, 7, 8, 9, 10, 11};
136 /* { dg-begin-multiline-output "" }
137 { 0, 1, 2, 3, 4, 5,
138 ^
139 { } { }
140 6, 7, 8, 9, 10, 11};
141 { } { }
142 { dg-end-multiline-output "" } */
143
144 struct sa2 arr_6_sa2[6] = \
145 { 0, 1, 2, 3, 4, 5, /* { dg-warning "missing braces around initializer" } */
146 6, 7, 8, 9, 10, 11};
147 /* { dg-begin-multiline-output "" }
148 { 0, 1, 2, 3, 4, 5,
149 ^
150 {{ }}{{ }}{{ }}
151 6, 7, 8, 9, 10, 11};
152 {{ }}{{ }}{{ }}
153 { dg-end-multiline-output "" } */
154
155 struct sa3 arr_4_sa3[4] = \
156 { 0, 1, 2, 3, 4, 5, /* { dg-warning "missing braces around initializer" } */
157 6, 7, 8, 9, 10, 11};
158 /* { dg-begin-multiline-output "" }
159 { 0, 1, 2, 3, 4, 5,
160 ^
161 {{ }}{{ }}
162 6, 7, 8, 9, 10, 11};
163 {{ }}{{ }}
164 { dg-end-multiline-output "" } */
165
166 /* PR c/81405. */
167 int a5[][0][0] = { 1, 2 }; /* { dg-line pr_81405 } */
168
169 /* { dg-warning "missing braces around initializer" "" { target c } pr_81405 } */
170 /* { dg-begin-multiline-output "" }
171 int a5[][0][0] = { 1, 2 };
172 ^
173 { -----
174 {{1}}}}, {{{2 }}
175 { dg-end-multiline-output "" } */
176
177 /* { dg-warning "excess elements" "" { target c } pr_81405 } */
178 /* { dg-begin-multiline-output "" }
179 int a5[][0][0] = { 1, 2 };
180 ^
181 { dg-end-multiline-output "" } */
182 /* { dg-begin-multiline-output "" }
183 int a5[][0][0] = { 1, 2 };
184 ^
185 { dg-end-multiline-output "" } */
186 /* { dg-begin-multiline-output "" }
187 int a5[][0][0] = { 1, 2 };
188 ^~~
189 { dg-end-multiline-output "" } */