https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88144
--- Comment #4 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- On Thu, 22 Nov 2018, pinskia at gcc dot gnu.org wrote: > I think one of the reasons why it has not been removed is there is still code > out there that uses this syntax. Including system headers using it (possibly to support both C and C++). The C99 syntax wasn't supported for C++ at the same time support was added for C, only in 2011 for GCC 4.7: 2011-07-20 Jason Merrill <ja...@redhat.com> * parser.c (cp_parser_initializer_list): Handle C99 .id= and [N]= designated initializer syntax. * decl.c (check_array_designated_initializer): Add index parm. (maybe_deduce_size_from_array_init): Pass it. (reshape_init_array_1): Likewise. See <https://gcc.gnu.org/ml/gcc-patches/2003-02/msg01150.html> for discussion of obsoletion (i.e. enabling the pedwarns in question by default).