https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51352
--- Comment #5 from Paolo Carlini <paolo.carlini at oracle dot com> --- We have this comment in cp_parser_direct_declarator: /* Normally, the array bound must be an integral constant expression. However, as an extension, we allow VLAs in function scopes as long as they aren't part of a parameter declaration. */ cp_parser_error (parser, "array bound is not an integer constant"); thus the limitation is well known (to the author of the parser at least ;)