https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98587
Bug ID: 98587 Summary: incorrect format of VLAs and pointer to array for MEM_REF Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: msebor at gcc dot gnu.org Target Milestone: --- Testing a fix for pr98578 reveals that MEM_REF accesses to VLAs and pointers to arrays aren't formatted quite correctly. The VLA format has a spurious asterisk and the dereference of the pointer to array is not parenthesized as it should be. $ cat x.c && gcc -O2 -S -Wall x.c void f (int); void g (int n) { int a[n]; f (a[1]); } void h (int n) { int (*p)[n] = __builtin_malloc (n); f ((*p)[1]); } x.c: In function ‘g’: x.c:6:3: warning: ‘*a[1]’ is used uninitialized [-Wuninitialized] 6 | f (a[1]); | ^~~~~~~~ x.c: In function ‘h’: x.c:13:3: warning: ‘*p[1]’ is used uninitialized [-Wuninitialized] 13 | f ((*p)[1]); | ^~~~~~~~~~~