1 // Test for C99-style designated array initializer 2 3 union U 4 { 5 long l; 6 const char *p; 7 }; 8 9 __extension__ U u = { .p = "" }; 10 11 __extension__ int i[4] = { [0] = 1, [1] = 2 }; 12 13 // Currently, except for unions, the C++ front end only supports 14 // designators that designate the element that would have been initialized 15 // anyway. While that's true, make sure that we get a sorry rather than 16 // bad code. 17 18 struct A 19 { 20 int i; 21 int j; 22 }; 23 24 __extension__ A a = { .j = 1 }; // { dg-message "non-trivial" } 25 __extension__ int j[2] = { [1] = 1 }; // { dg-message "non-trivial" } 26