| // Test for C99-style designated array initializer |
| |
| union U |
| { |
| long l; |
| const char *p; |
| }; |
| |
| __extension__ U u = { .p = "" }; |
| |
| __extension__ int i[4] = { [0] = 1, [1] = 2 }; |
| |
| // Currently, except for unions, the C++ front end only supports |
| // designators that designate the element that would have been initialized |
| // anyway. While that's true, make sure that we get a sorry rather than |
| // bad code. |
| |
| struct A |
| { |
| int i; |
| int j; |
| }; |
| |
| __extension__ A a = { .j = 1 }; // { dg-message "non-trivial" } |
| __extension__ int j[2] = { [1] = 1 }; // { dg-message "non-trivial" } |