https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87192
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Rich Felker from comment #3) > Adding a second member int b; does not make it work. Was that second member before or after the array? > is it for the sake of supporting > code with erroneous alternatives to flexible array members Yes, due to C89 not having flexible array members, it is to support them in older code. There are many pre C99 code floating around that needs to be supported.