re PR ada/66526 (apparent use of uninitialized variables in g-expect.adb)
authorEric Botcazou <ebotcazou@adacore.com>
Wed, 9 Dec 2015 11:07:08 +0000 (11:07 +0000)
committerEric Botcazou <ebotcazou@gcc.gnu.org>
Wed, 9 Dec 2015 11:07:08 +0000 (11:07 +0000)
PR ada/66526
* g-expect.adb (Set_Up_Child_Communications): Add matching condition
for uses of Input, Ouput and Error variables after the Execvp call.

From-SVN: r231450

gcc/ada/ChangeLog
gcc/ada/g-expect.adb

index 74f02390e7d4a125b9fd90622fc663a1ea3bdfee..38fe3be3d4117315e552c4ba11580ab9929f9296 100644 (file)
@@ -1,3 +1,9 @@
+2015-12-09  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR ada/66526
+       * g-expect.adb (Set_Up_Child_Communications): Add matching condition
+       for uses of Input, Ouput and Error variables after the Execvp call.
+
 2015-12-08  Jakub Jelinek  <jakub@redhat.com>
 
        PR c/48088
index 831d8232fb5979d759d04c2da7e1ebf0cddf4298..d7e65fb3e45b34f8afa03c0d2139eb070c754e25 100644 (file)
@@ -1348,17 +1348,22 @@ package body GNAT.Expect is
 
       Portable_Execvp (Pid.Pid'Access, Cmd & ASCII.NUL, Args);
 
-      --  The following commands are not executed on Unix systems, and are only
-      --  required for Windows systems. We are now in the parent process.
+      --  The following lines are only required for Windows systems and will
+      --  not be executed on Unix systems, but we use the same condition as
+      --  above to avoid warnings on uninitialized variables on Unix systems.
+      --  We are now in the parent process.
 
-      --  Restore the old descriptors
+      if No_Fork_On_Target then
+
+         --  Restore the old descriptors
 
-      Dup2 (Input,  GNAT.OS_Lib.Standin);
-      Dup2 (Output, GNAT.OS_Lib.Standout);
-      Dup2 (Error,  GNAT.OS_Lib.Standerr);
-      Close (Input);
-      Close (Output);
-      Close (Error);
+         Dup2 (Input,  GNAT.OS_Lib.Standin);
+         Dup2 (Output, GNAT.OS_Lib.Standout);
+         Dup2 (Error,  GNAT.OS_Lib.Standerr);
+         Close (Input);
+         Close (Output);
+         Close (Error);
+      end if;
    end Set_Up_Child_Communications;
 
    ---------------------------