On Mon, Oct 26, 2015 at 1:01 PM, Jakub Jelinek <ja...@redhat.com> wrote: > On Mon, Oct 26, 2015 at 12:57:53PM +0100, Bernd Schmidt wrote: >> On 10/26/2015 12:47 PM, Jakub Jelinek wrote: >> >> >Because the amount of code that uses this (including GCC itself) is just too >> >huge, so everywhere in the middle-end we also special case last array >> >members of >> >structs. While C99+ has flexible array members, e.g. C++ does not, so users >> >are left with using struct { ... type fld[1]; }; >> >> Yes, and that case is documented. However, the issue is arrays declared with >> a larger size than 1 or 0 - is there really code using them as flexible >> array members? > > I believe so, though don't have pointers to that right now. But vaguely > remember we saw various cases of using 2 or other values too.
Yes, char[4] is quite common (basically making sure there is no appearant padding behind the array due to alignment - just in case compilers might be clever because of that). Richard. > Jakub