diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/lto/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/lto/lto.c | 4 |
2 files changed, 9 insertions, 0 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index 3fc7136..d9849b4 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,8 @@ +2012-10-08 Tobias Burnus <burnus@net-b.de> + + * lto.c (lto_wpa_write_files, read_cgraph_and_symbols): + Free lto_file struct after closing the file. + 2012-10-08 Jan Hubicka <jh@suse.cz> * lto/lto.c (remember_with_vars): Also fixup INTEGER_CST. diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c index 81d7fb3..2b9156a 100644 --- a/gcc/lto/lto.c +++ b/gcc/lto/lto.c @@ -2674,6 +2674,7 @@ lto_wpa_write_files (void) lto_set_current_out_file (NULL); lto_obj_file_close (file); + free (file); part->encoder = NULL; len = strlen (temp_filename); @@ -2690,6 +2691,7 @@ lto_wpa_write_files (void) fatal_error ("closing LTRANS output list %s: %m", ltrans_output_list); free_ltrans_partitions(); + free (temp_filename); timevar_pop (TV_WHOPR_WPA_IO); } @@ -2952,6 +2954,7 @@ read_cgraph_and_symbols (unsigned nfiles, const char **fnames) if (!file_data) { lto_obj_file_close (current_lto_file); + free (current_lto_file); current_lto_file = NULL; break; } @@ -2959,6 +2962,7 @@ read_cgraph_and_symbols (unsigned nfiles, const char **fnames) decl_data[last_file_ix++] = file_data; lto_obj_file_close (current_lto_file); + free (current_lto_file); current_lto_file = NULL; ggc_collect (); } |