https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81677
--- Comment #2 from chris.ol...@iti-global.com --- This isn't an array of incomplete type, but a pointer-to-array of incomplete type; not just any incomplete type, but struct that is guaranteed to be complete when the outermost } is encountered. As I interpret C90, if a member can point to its own struct, then a member should be able to point to an array of its own struct.