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.

Reply via email to