https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68107
--- Comment #1 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- grokdeclarator seems to check the declared size of an array (when processing an array declarator) - that is, the size counted in array elements - and then has a separate check for the size in bytes only when the final type of the full declarator is an array type. I think the check on the size in bytes needs moving up to check every non-VLA complete array type constructed in the course of processing the declarator.