http://gcc.gnu.org/bugzilla/show_bug.cgi?id=28865
--- Comment #17 from Alan Modra <amodra at gmail dot com> --- I believe Eric's comment http://gcc.gnu.org/ml/gcc-patches/2013-05/msg00179.html points at the correct fix, but it's a bit messy. You need to recursively descend both "decl" and "init" in code like c-decl.c:finish_decl, updating "decl" component sizes for any variable length arrays you find, rather than handling just a top level variable length array as we do currently. Then repeat the exercise for other language versions of finish_decl..