https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100124
Martin Sebor <msebor at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |msebor at gcc dot gnu.org --- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> --- The reason why G++ rejects structs with a flexible array as the sole member is because GCC (in C mode) doesn't accept them. Git log indicates that GCC started rejecting such code in r38705, which was committed as part of array member initialization cleanup. I don't know why the author of the change chose to reject such structs rather than accepting them with a warning, just like empty structs are accepted. If he had, C++ might have followed suit. At this point, I don't see GCC (in either mode) making a change unless C itself were to change first. That seems highly unlikely to me (the last proposal to relax the rules for flexible array members didn't go anywhere).