https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119019

            Bug ID: 119019
           Summary: -Wshadow false negative for function parameter (used
                    as array length expression) shadowing a global
                    variable
           Product: gcc
           Version: 14.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
          Assignee: unassigned at gcc dot gnu.org
          Reporter: alx at kernel dot org
  Target Milestone: ---

alx@debian:~/tmp$ cat f.c
extern int n;

void f(int a[n], int n);
alx@debian:~/tmp$ gcc -Wall -Wextra -Wshadow -S f.c 
alx@debian:~/tmp$ clang -Weverything -Wno-vla -S f.c 
alx@debian:~/tmp$ 


That program obviously has a bug.  The number of elements of 'a' is intended to
be $2, but it is actually controlled by the global variable 'n'.  I think
-Wshadow should diagnose this.

Reply via email to