https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101289
Bug ID: 101289 Summary: bogus -Wvla-paramater warning when using const for vla param Product: gcc Version: 11.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: ljrk at ljrk dot org Target Milestone: --- Created attachment 51099 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51099&action=edit minimum working/reproducing example If the vla parameter has a const specifier, the compiler will warn about mismatched bounds: $ cat mwe.c && make CFLAGS=-Wvla-parameter mwe.o extern void mwe(const int len, char buf[len]); void mwe(const int len, char buf[len]) {} cc -Wvla-parameter -c -o mwe.o mwe.c mwe.c:2:30: warning: argument 2 of type ‘char[len]’ declared with mismatched bound ‘len’ [-Wvla-parameter] 2 | void mwe(const int len, char buf[len]) {} | ~~~~~^~~~~~~~ mwe.c:1:37: note: previously declared as ‘char[len]’ with bound ‘len’ 1 | extern void mwe(const int len, char buf[len]); | ~~~~~^~~~~~~~ $ If I remove the const specifier to len, the warning goes away: $ sed 's/const //g' -i mwe.c && make CFLAGS=-Wvla-parameter mwe.o cc -Wvla-parameter -c -o mwe.o mwe.c $ Maybe this is related to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97548 ?