111
|
1 /* Test for various initializer warnings being suppressed by use of
|
|
2 designated initializers. */
|
|
3
|
|
4 /* { dg-do compile } */
|
|
5 /* { dg-options "-std=c99 -W -Wall -Wtraditional" } */
|
|
6
|
|
7
|
|
8 struct t
|
|
9 {
|
|
10 int a;
|
|
11 int b; /* { dg-message "note: 'b' declared here" } */
|
|
12 int c;
|
|
13 };
|
|
14
|
|
15 union u
|
|
16 {
|
|
17 int n;
|
|
18 float i;
|
|
19 };
|
|
20
|
|
21 struct multilevel
|
|
22 {
|
|
23 int x;
|
|
24 struct t t;
|
|
25 union u u;
|
|
26 union u v;
|
|
27 char *f; /* { dg-line multilevel_f } */
|
|
28 };
|
|
29
|
|
30 struct t T0 = { 1 }; /* { dg-warning "missing init" } */
|
|
31
|
|
32 struct t T1 = { .a = 1 }; /* { dg-bogus "(missing|near) init" } */
|
|
33
|
|
34 union u U0 = { 1 }; /* { dg-warning "initialization of union" } */
|
|
35 union u U1 = { .i = 1 }; /* { dg-bogus "initialization of union" } */
|
|
36
|
|
37 struct multilevel M =
|
|
38 {
|
|
39 12,
|
|
40 { .b = 3 }, /* { dg-bogus "missing init" } */
|
|
41 { 4 }, /* { dg-warning "initialization of union" } */
|
|
42 { .n = 9 }, /* { dg-bogus "initialization of union" } */
|
|
43 /* "string here" */
|
|
44 }; /* { dg-warning "missing init" } */
|
|
45 /* { dg-message "declared here" "near init" { target *-*-* } multilevel_f } */
|