[Ada] Allow use of debug routines when output is going elsewhere
authorRichard Kenner <kenner@adacore.com>
Mon, 24 Aug 2020 13:09:49 +0000 (09:09 -0400)
committerPierre-Marie de Rodat <derodat@adacore.com>
Thu, 22 Oct 2020 12:11:26 +0000 (08:11 -0400)
gcc/ada/

* sprint.adb (pg, po, ps): Use {Push,Pop}_Output.
* treepr.adb (pl, pn): Likewise.

gcc/ada/sprint.adb
gcc/ada/treepr.adb

index 774bcf7f3362a70ceb91d655820818f56f8e68da..d71c415815ccfc97a43d997878f97e0509990db8 100644 (file)
@@ -420,6 +420,8 @@ package body Sprint is
       Dump_Original_Only  := False;
       Dump_Freeze_Null    := True;
       Current_Source_File := No_Source_File;
+      Push_Output;
+      Set_Standard_Output;
 
       if Arg in List_Range then
          Sprint_Node_List (List_Id (Arg), New_Lines => True);
@@ -432,6 +434,7 @@ package body Sprint is
       end if;
 
       Write_Eol;
+      Pop_Output;
    end pg;
 
    --------
@@ -444,6 +447,8 @@ package body Sprint is
       Dump_Original_Only  := True;
       Dump_Freeze_Null    := False;
       Current_Source_File := No_Source_File;
+      Push_Output;
+      Set_Standard_Output;
 
       if Arg in List_Range then
          Sprint_Node_List (List_Id (Arg), New_Lines => True);
@@ -456,6 +461,7 @@ package body Sprint is
       end if;
 
       Write_Eol;
+      Pop_Output;
    end po;
 
    ----------------------
@@ -477,6 +483,8 @@ package body Sprint is
       Dump_Original_Only  := False;
       Dump_Freeze_Null    := False;
       Current_Source_File := No_Source_File;
+      Push_Output;
+      Set_Standard_Output;
 
       if Arg in List_Range then
          Sprint_Node_List (List_Id (Arg), New_Lines => True);
@@ -489,6 +497,7 @@ package body Sprint is
       end if;
 
       Write_Eol;
+      Pop_Output;
    end ps;
 
    --------------------
index d902ab820dfab8a48b547b642379d79f4a825d75..ee1b3ba43cb2843d9ac8c8930d6cdfc620c237f1 100644 (file)
@@ -264,6 +264,9 @@ package body Treepr is
       Lid : Int;
 
    begin
+      Push_Output;
+      Set_Standard_Output;
+
       if L < 0 then
          Lid := L;
 
@@ -292,6 +295,7 @@ package body Treepr is
       --  Now output the list
 
       Print_Tree_List (List_Id (Lid));
+      Pop_Output;
    end pl;
 
    --------
@@ -300,6 +304,9 @@ package body Treepr is
 
    procedure pn (N : Union_Id) is
    begin
+      Push_Output;
+      Set_Standard_Output;
+
       case N is
          when List_Low_Bound .. List_High_Bound - 1 =>
             pl (Int (N));
@@ -332,6 +339,8 @@ package body Treepr is
             Write_Int (Int (N));
             Write_Eol;
       end case;
+
+      Pop_Output;
    end pn;
 
    --------