[gcc r15-7851] lto: Fix missing cleanup with incremental LTO.
Michal Jires
mjires@gcc.gnu.org
Thu Mar 6 10:05:47 GMT 2025
https://gcc.gnu.org/g:50cd99795268aaaf10705fa876dd4b751453e2f6
commit r15-7851-g50cd99795268aaaf10705fa876dd4b751453e2f6
Author: Michal Jires <mjires@suse.cz>
Date: Thu Mar 6 06:49:20 2025 +0100
lto: Fix missing cleanup with incremental LTO.
Incremental LTO disabled cleanup of output_files since they have to
persist in ltrans cache.
This unintetionally also kept temporary early debug "*.debug.temp.o"
files.
Bootstrapped/regtested on x86_64-linux.
Ok for trunk?
lto-plugin/ChangeLog:
* lto-plugin.c (cleanup_handler): Keep only files in ltrans
cache.
Diff:
---
lto-plugin/lto-plugin.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/lto-plugin/lto-plugin.c b/lto-plugin/lto-plugin.c
index 3d272551fed5..09d5441ecc78 100644
--- a/lto-plugin/lto-plugin.c
+++ b/lto-plugin/lto-plugin.c
@@ -945,6 +945,17 @@ cleanup_handler (void)
if (!flto_incremental)
for (i = 0; i < num_output_files; i++)
maybe_unlink (output_files[i]);
+ else
+ {
+ /* Keep files in ltrans cache. */
+ const char* suffix = ".ltrans.o";
+ for (i = 0; i < num_output_files; i++)
+ {
+ int offset = strlen (output_files[i]) - strlen (suffix);
+ if (offset < 0 || strcmp (output_files[i] + offset, suffix))
+ maybe_unlink (output_files[i]);
+ }
+ }
free_2 ();
return LDPS_OK;
More information about the Gcc-cvs
mailing list