| /* Test for various initializer warnings being suppressed by use of |
| designated initializers. */ |
| |
| /* { dg-do compile } */ |
| /* { dg-options "-std=c99 -W -Wall -Wtraditional" } */ |
| |
| |
| struct t |
| { |
| int a; |
| int b; |
| int c; |
| }; |
| |
| union u |
| { |
| int n; |
| float i; |
| }; |
| |
| struct multilevel |
| { |
| int x; |
| struct t t; |
| union u u; |
| union u v; |
| char *f; |
| }; |
| |
| struct t T0 = { 1 }; /* { dg-warning "(missing|near) init" } */ |
| struct t T1 = { .a = 1 }; /* { dg-bogus "(missing|near) init" } */ |
| |
| union u U0 = { 1 }; /* { dg-warning "initialization of union" } */ |
| union u U1 = { .i = 1 }; /* { dg-bogus "initialization of union" } */ |
| |
| struct multilevel M = |
| { |
| 12, |
| { .b = 3 }, /* { dg-bogus "(missing|near) init" } */ |
| { 4 }, /* { dg-warning "initialization of union" } */ |
| { .n = 9 }, /* { dg-bogus "initialization of union" } */ |
| /* "string here" */ |
| }; /* { dg-warning "(missing|near) init" } */ |