lto-wrapper: Use nontemp filename with -save-temps
authorTobias Burnus <tobias@codesourcery.com>
Tue, 13 Oct 2020 13:19:51 +0000 (15:19 +0200)
committerTobias Burnus <tobias@codesourcery.com>
Tue, 13 Oct 2020 13:19:51 +0000 (15:19 +0200)
gcc/ChangeLog:

* lto-wrapper.c (find_crtoffloadtable): With -save-temps,
use non-temp file name utilizing the dump prefix.
(run_gcc): Update call.

gcc/lto-wrapper.c

index 82cfa6bd67e17a49f93063e48b5498bd3517de58..4d3cd7a56f20863fe697ea3259284624fcf7c77b 100644 (file)
@@ -1026,7 +1026,7 @@ copy_file (const char *dest, const char *src)
    the copy to the linker.  */
 
 static void
-find_crtoffloadtable (void)
+find_crtoffloadtable (int save_temps, const char *dumppfx)
 {
   char **paths = NULL;
   const char *library_path = getenv ("LIBRARY_PATH");
@@ -1039,7 +1039,11 @@ find_crtoffloadtable (void)
     if (access_check (paths[i], R_OK) == 0)
       {
        /* The linker will delete the filename we give it, so make a copy.  */
-       char *crtoffloadtable = make_temp_file (".crtoffloadtable.o");
+       char *crtoffloadtable;
+       if (!save_temps)
+         crtoffloadtable = make_temp_file (".crtoffloadtable.o");
+       else
+         crtoffloadtable = concat (dumppfx, "crtoffloadtable.o");
        copy_file (crtoffloadtable, paths[i]);
        printf ("%s\n", crtoffloadtable);
        XDELETEVEC (crtoffloadtable);
@@ -1698,7 +1702,7 @@ cont1:
 
       if (offload_names)
        {
-         find_crtoffloadtable ();
+         find_crtoffloadtable (save_temps, dumppfx);
          for (i = 0; offload_names[i]; i++)
            printf ("%s\n", offload_names[i]);
          free_array_of_ptrs ((void **) offload_names, i);