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.
---
 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 3d272551fed..09d5441ecc7 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;
-- 
2.48.1

Reply via email to