When a response file was created and the link failed, the response file
was not deleted. It is deleted now.

Tested on x86_64-pc-linux-gnu, committed on trunk

2015-10-27  Vincent Celier  <cel...@adacore.com>

        * gnatlink.adb: Always delete the response file, even when the
        invocation of gcc to link failed.

Index: gnatlink.adb
===================================================================
--- gnatlink.adb        (revision 229413)
+++ gnatlink.adb        (working copy)
@@ -1859,6 +1859,10 @@
    --  been compiled.
 
    if Opt.CodePeer_Mode then
+      if Tname_FD /= Invalid_FD then
+         Delete (Tname);
+      end if;
+
       return;
    end if;
 
@@ -2052,16 +2056,14 @@
 
          System.OS_Lib.Spawn (Linker_Path.all, Args, Success);
 
-         if Success then
+         --  Delete the temporary file used in conjunction with linking if one
+         --  was created. See Process_Bind_File for details.
 
-            --  Delete the temporary file used in conjunction with linking
-            --  if one was created. See Process_Bind_File for details.
+         if Tname_FD /= Invalid_FD then
+            Delete (Tname);
+         end if;
 
-            if Tname_FD /= Invalid_FD then
-               Delete (Tname);
-            end if;
-
-         else
+         if not Success then
             Error_Msg ("error when calling " & Linker_Path.all);
             Exit_Program (E_Fatal);
          end if;

Reply via email to