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

            Bug ID: 98937
           Summary: [11 Regression] pointer_query cache leaks
           Product: gcc
           Version: 11.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: rguenth at gcc dot gnu.org
  Target Milestone: ---

==25237== 2,634,236 bytes in 1 blocks are possibly lost in loss record 9,732 of
9,737
==25237==    at 0x4C308BF: realloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==25237==    by 0x1547AFC: xrealloc (xmalloc.c:179)
==25237==    by 0x67CB71: reserve<unsigned int> (vec.h:290)
==25237==    by 0x67CB71: reserve (vec.h:1778)
==25237==    by 0x67CB71: safe_grow (vec.h:1926)
==25237==    by 0x67CB71: safe_grow_cleared (vec.h:1945)
==25237==    by 0x67CB71: pointer_query::put_ref(tree_node*, access_ref const&,
int) (builtins.c:705)
==25237==    by 0x6864DF: compute_objsize_r(tree_node*, int, access_ref*,
ssa_name_limit_t&, pointer_query*) (builtins.c:5739)
==25237==    by 0x68CEAD: compute_objsize(tree_node*, int, access_ref*,
pointer_query*) (builtins.c:5775)
==25237==    by 0xC4BFD1: maybe_warn_overflow(gimple*, tree_node*,
pointer_query&, strinfo*, bool, bool) (tree-ssa-strlen.c:1952)
==25237==    by 0xC5642F: handle_builtin_memset (tree-ssa-strlen.c:3687)
==25237==    by 0xC5642F: strlen_check_and_optimize_call
(tree-ssa-strlen.c:5178)
==25237==    by 0xC5642F: check_and_optimize_stmt (tree-ssa-strlen.c:5359)
==25237==    by 0xC5642F:
strlen_dom_walker::before_dom_children(basic_block_def*)
(tree-ssa-strlen.c:5602)
==25237==    by 0x13366A4: dom_walker::walk(basic_block_def*) (domwalk.c:309)
==25237==    by 0xC49ABE: (anonymous
namespace)::printf_strlen_execute(function*, bool) (tree-ssa-strlen.c:5668)
==25237==    by 0x9E58A3: execute_one_pass(opt_pass*) (passes.c:2567)
==25237==    by 0x9E6100: execute_pass_list_1(opt_pass*) (passes.c:2656)
==25237==    by 0x9E6112: execute_pass_list_1(opt_pass*) (passes.c:2657)


looks like there's no DTOR for pointer_query::cache_type so strlen_dom_walker
will not release the two vectors.

Reply via email to