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