https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101585
Bug ID: 101585
Summary: Bad interaction of -fsanitize=undefined and
-Wvla-parameters
Product: gcc
Version: 11.1.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: jahns at dkrz dot de
Target Milestone: ---
The following source causes an incorrect warning with gcc 11.1.0 (sorry did not
have 11.1.1 available, it's not yet in spack):
void a(long send_size_asize, int (*)[send_size_asize]);
void a(long send_size_asize, int (*)[send_size_asize]) {}
Compiling it with
gcc-11.1 -c -Wall -Werror -fsanitize=undefined mini.c
results in
mini.c:2:30: error: mismatch in bound 1 of argument 2 declared as 'int
(*)[(send_size_asize) - 1]'
[]8;;https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wvla-parameter-Werror=vla-parameter]8;;]
2 | void a(long send_size_asize, int (*)[send_size_asize]) {}
| ^~~~~~~~~~~~~~~~~~~~~~~~
mini.c:1:30: note: previously declared as 'int (*)[(send_size_asize) - 1]'
1 | void a(long send_size_asize, int (*)[send_size_asize]);
| ^~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors