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)