https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63373
--- Comment #3 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- I agree with the analysis in bug 28865 that .size should reflect the presence of the initializer. That bug was marked FIXED, but I'm not clear if the issue described in its summary - "Structures with a flexible arrray member have wrong .size" - did in fact get fixed for some configurations (but not all? or became unfixed?) or only some related issue that was sufficient for the testcases added to pass. I think this code should be considered valid GNU C.