https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109990
Bug ID: 109990 Summary: [12 Regression] Bogus -Wuse-after-free warning after realloc Product: gcc Version: 13.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: bruno at clisp dot org Target Milestone: --- Created attachment 55168 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55168&action=edit test case bar.c Compiling the attached file produces a warning that is not justified: $ gcc -Wall -O2 -S bar.c bar.c: In function ‘read_alias_file’: bar.c:122:52: warning: pointer may be used after ‘realloc’ [-Wuse-after-free] 122 | map[i].alias += new_pool - string_space; | ~~~~~~~~~^~~~~~~~~~~~~~ bar.c:114:45: note: call to ‘realloc’ here 114 | char *new_pool = (char *) realloc (string_space, new_size); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The warning is not justified because only the pointer 'string_space' is used here; it is not being dereferenced. Seen with gcc 12.3.0 and 13.1.0.