https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85361
Bug ID: 85361 Summary: Variable length array allowed in c89/90 Product: gcc Version: 5.4.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: whh8b at virginia dot edu Target Milestone: --- Created attachment 43914 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43914&action=edit Code to trigger behavior. In an attempt to fix bug 44209, I was investigating warning messages about variable length arrays. The c89/90 standard appears to forbid VLAs but GCC treats their presence as something only to warn the user about. Should this be an error instead of a warning? Depending on how you invoke GCC on the code attached to this report, it either compiles with no complaints: $ gcc -std=c89 /tmp/vla.c $ or with a simple warning: $ gcc -std=c89 -Wpedantic /tmp/vla.c /tmp/vla.c:1:13: warning: ISO C90 does not support ‘[*]’ array declarators [-Wpedantic] void f(int a[*]); $ Since gcc gives the user the option to specify which version of the c standard to adhere to, shouldn't gcc be a little more strict when the user is explicit? I absolutely appeal to the wiser counsel of all the experts, but I thought I would ask. Thank you!