https://gcc.gnu.org/g:50cd99795268aaaf10705fa876dd4b751453e2f6

commit r15-7851-g50cd99795268aaaf10705fa876dd4b751453e2f6
Author: Michal Jires <mji...@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;

Reply via email to