Hi. The patch fixes:
==137424== 24 bytes in 1 blocks are definitely lost in loss record 23 of 748 ==137424== at 0x4C29110: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==137424== by 0x10C39D7: xmalloc (xmalloc.c:147) ==137424== by 0x10C3AE9: xstrdup (xstrdup.c:34) ==137424== by 0x61273F: lto_obj_file_open(char const*, bool) (lto-object.c:93) ==137424== by 0x60AE62: do_stream_out(char*, lto_symtab_encoder_d*) (lto.c:2284) ==137424== by 0x60FC72: stream_out (lto.c:2333) ==137424== by 0x60FC72: lto_wpa_write_files (lto.c:2470) ==137424== by 0x60FC72: do_whole_program_analysis (lto.c:3156) ==137424== by 0x60FC72: lto_main() (lto.c:3316) ==137424== by 0x9B830E: compile_file() (toplev.c:467) ==137424== by 0x5E2D98: do_compile (toplev.c:1984) ==137424== by 0x5E2D98: toplev::main(int, char**) (toplev.c:2118) ==137424== by 0x5E4B76: main (main.c:39) Patch can bootstrap on ppc64le-redhat-linux and survives regression tests. Ready to be installed? Martin
>From 66b97767a498d438eb5740141a299ac8347d4ebc Mon Sep 17 00:00:00 2001 From: marxin <mli...@suse.cz> Date: Tue, 14 Feb 2017 10:35:09 +0100 Subject: [PATCH] Fix memory leak in LTO gcc/lto/ChangeLog: 2017-02-14 Martin Liska <mli...@suse.cz> * lto.c (do_stream_out): Free LTO file filename string. --- gcc/lto/lto.c | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index d77d85defb6..99d58cff4d4 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -2288,6 +2288,8 @@ do_stream_out (char *temp_filename, lto_symtab_encoder_t encoder) ipa_write_optimization_summaries (encoder); + free (CONST_CAST (char *, file->filename)); + lto_set_current_out_file (NULL); lto_obj_file_close (file); free (file); -- 2.11.0