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

            Bug ID: 79339
           Summary: [7 Regression] Memory leak in gimple-ssa-sprintf.c
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: msebor at gcc dot gnu.org
  Target Milestone: ---

There are 2 memory leaks related to usage of MPFR:

==70132==    at 0x4C29110: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==70132==    by 0x52B7F08: __gmp_default_allocate (in
/usr/lib64/libgmp.so.10.1.3)
==70132==    by 0x507C0B0: mpfr_init2 (in /usr/lib64/libmpfr.so.4.1.2)
==70132==    by 0x104425A: (anonymous
namespace)::format_floating_max(tree_node*, char, long)
(gimple-ssa-sprintf.c:1500)
==70132==    by 0x1044858: format_floating (gimple-ssa-sprintf.c:1628)
==70132==    by 0x1044858: (anonymous namespace)::format_floating((anonymous
namespace)::directive const&, tree_node*) (gimple-ssa-sprintf.c:1674)
==70132==    by 0x10457DD: format_directive (gimple-ssa-sprintf.c:2444)
==70132==    by 0x10457DD: compute_format_length (gimple-ssa-sprintf.c:3104)
==70132==    by 0x10457DD: handle_gimple_call (gimple-ssa-sprintf.c:3524)
==70132==    by 0x10457DD: (anonymous
namespace)::pass_sprintf_length::execute(function*) (gimple-ssa-sprintf.c:3552)
==70132==    by 0x99BABE: execute_one_pass(opt_pass*) (passes.c:2465)
==70132==    by 0x99C277: execute_pass_list_1(opt_pass*) (passes.c:2554)
==70132==    by 0x99C289: execute_pass_list_1(opt_pass*) (passes.c:2555)
==70132==    by 0x99C2D4: execute_pass_list(function*, opt_pass*)
(passes.c:2565)
==70132==    by 0x71EB85: cgraph_node::expand() (cgraphunit.c:2036)
==70132==    by 0x7200E3: expand_all_functions (cgraphunit.c:2172)
==70132==    by 0x7200E3: symbol_table::compile() (cgraphunit.c:2529)
==70132==    by 0x7218FB: symbol_table::finalize_compilation_unit()
(cgraphunit.c:2619)
==70132==    by 0xA5A8AB: compile_file() (toplev.c:488)
==70132==    by 0x5F3C08: do_compile (toplev.c:1983)
==70132==    by 0x5F3C08: toplev::main(int, char**) (toplev.c:2117)
==70132==    by 0x5F59B6: main (main.c:39)

==70132== 24 bytes in 1 blocks are possibly lost in loss record 14 of 1,350
==70132==    at 0x4C2B41E: realloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==70132==    by 0x52B7F53: __gmp_default_reallocate (in
/usr/lib64/libgmp.so.10.1.3)
==70132==    by 0x506CC2E: mpfr_set_prec (in /usr/lib64/libmpfr.so.4.1.2)
==70132==    by 0x5087128: mpfr_cache (in /usr/lib64/libmpfr.so.4.1.2)
==70132==    by 0x5062359: mpfr_log (in /usr/lib64/libmpfr.so.4.1.2)
==70132==    by 0x507A25B: mpfr_log2 (in /usr/lib64/libmpfr.so.4.1.2)
==70132==    by 0x50691D1: mpfr_pow (in /usr/lib64/libmpfr.so.4.1.2)
==70132==    by 0x507A8C3: mpfr_ui_pow (in /usr/lib64/libmpfr.so.4.1.2)
==70132==    by 0x50654C7: ??? (in /usr/lib64/libmpfr.so.4.1.2)
==70132==    by 0x506556E: ??? (in /usr/lib64/libmpfr.so.4.1.2)
==70132==    by 0x5066A9E: __gmpfr_vasprintf (in /usr/lib64/libmpfr.so.4.1.2)
==70132==    by 0x5064E53: mpfr_snprintf (in /usr/lib64/libmpfr.so.4.1.2)
==70132==    by 0x1044142: (anonymous
namespace)::get_mpfr_format_length(__mpfr_struct*, char const*, long, char,
char) (gimple-ssa-sprintf.c:1463)
==70132==    by 0x1044795: (anonymous namespace)::format_floating((anonymous
namespace)::directive const&, tree_node*) (gimple-ssa-sprintf.c:1741)
==70132==    by 0x10457DD: format_directive (gimple-ssa-sprintf.c:2444)
==70132==    by 0x10457DD: compute_format_length (gimple-ssa-sprintf.c:3104)
==70132==    by 0x10457DD: handle_gimple_call (gimple-ssa-sprintf.c:3524)
==70132==    by 0x10457DD: (anonymous
namespace)::pass_sprintf_length::execute(function*) (gimple-ssa-sprintf.c:3552)
==70132==    by 0x99BABE: execute_one_pass(opt_pass*) (passes.c:2465)
==70132==    by 0x99C277: execute_pass_list_1(opt_pass*) (passes.c:2554)
==70132==    by 0x99C289: execute_pass_list_1(opt_pass*) (passes.c:2555)
==70132==    by 0x99C2D4: execute_pass_list(function*, opt_pass*)
(passes.c:2565)
==70132==    by 0x71EB85: cgraph_node::expand() (cgraphunit.c:2036)
==70132==    by 0x7200E3: expand_all_functions (cgraphunit.c:2172)
==70132==    by 0x7200E3: symbol_table::compile() (cgraphunit.c:2529)
==70132==    by 0x7218FB: symbol_table::finalize_compilation_unit()
(cgraphunit.c:2619)
==70132==    by 0xA5A8AB: compile_file() (toplev.c:488)
==70132==    by 0x5F3C08: do_compile (toplev.c:1983)
==70132==    by 0x5F3C08: toplev::main(int, char**) (toplev.c:2117)
==70132==    by 0x5F59B6: main (main.c:39)

Reply via email to