https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52339
--- Comment #8 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- I think it's valid C99, yes: the VLA size should be evaluated exactly once, when the declaration is passed in the order of execution.