This makes Sprint output the Storage_Pool and Procedure_To_Call fields
of the nodes for which they are defined (allocator, free and returns).
Tested on x86_64-pc-linux-gnu, committed on trunk
gcc/ada/
* sprint.adb (Sprint_Node_Actual) <N_Allocator>: Also print the
Procedure_To_Call field if it is present.
<N_Extended_Return_Statement>: Also print the Storage_Pool and
Procedure_To_Call fields if they are present.
<N_Free_Statement>: Likewise.
<N_Simple_Return_Statement>: Likewise.
diff --git a/gcc/ada/sprint.adb b/gcc/ada/sprint.adb
--- a/gcc/ada/sprint.adb
+++ b/gcc/ada/sprint.adb
@@ -1116,6 +1116,12 @@ package body Sprint is
Write_Char (']');
end if;
+ if Present (Procedure_To_Call (Node)) then
+ Write_Str_With_Col_Check ("[procedure_to_call = ");
+ Sprint_Node (Procedure_To_Call (Node));
+ Write_Char (']');
+ end if;
+
when N_And_Then =>
Sprint_Left_Opnd (Node);
Write_Str_Sloc (" and then ");
@@ -1785,11 +1791,23 @@ package body Sprint is
if Present (Handled_Statement_Sequence (Node)) then
Write_Str_With_Col_Check (" do");
Sprint_Node (Handled_Statement_Sequence (Node));
- Write_Indent_Str ("end return;");
- else
- Write_Indent_Str (";");
+ Write_Indent_Str ("end return");
+ end if;
+
+ if Present (Storage_Pool (Node)) then
+ Write_Str_With_Col_Check ("[storage_pool = ");
+ Sprint_Node (Storage_Pool (Node));
+ Write_Char (']');
end if;
+ if Present (Procedure_To_Call (Node)) then
+ Write_Str_With_Col_Check ("[procedure_to_call = ");
+ Sprint_Node (Procedure_To_Call (Node));
+ Write_Char (']');
+ end if;
+
+ Write_Char (';');
+
when N_Delta_Aggregate =>
Write_Str_With_Col_Check_Sloc ("(");
Sprint_Node (Expression (Node));
@@ -1973,6 +1991,19 @@ package body Sprint is
when N_Free_Statement =>
Write_Indent_Str_Sloc ("free ");
Sprint_Node (Expression (Node));
+
+ if Present (Storage_Pool (Node)) then
+ Write_Str_With_Col_Check ("[storage_pool = ");
+ Sprint_Node (Storage_Pool (Node));
+ Write_Char (']');
+ end if;
+
+ if Present (Procedure_To_Call (Node)) then
+ Write_Str_With_Col_Check ("[procedure_to_call = ");
+ Sprint_Node (Procedure_To_Call (Node));
+ Write_Char (']');
+ end if;
+
Write_Char (';');
when N_Freeze_Entity =>
@@ -3170,11 +3201,24 @@ package body Sprint is
if Present (Expression (Node)) then
Write_Indent_Str_Sloc ("return ");
Sprint_Node (Expression (Node));
- Write_Char (';');
else
- Write_Indent_Str_Sloc ("return;");
+ Write_Indent_Str_Sloc ("return");
+ end if;
+
+ if Present (Storage_Pool (Node)) then
+ Write_Str_With_Col_Check ("[storage_pool = ");
+ Sprint_Node (Storage_Pool (Node));
+ Write_Char (']');
end if;
+ if Present (Procedure_To_Call (Node)) then
+ Write_Str_With_Col_Check ("[procedure_to_call = ");
+ Sprint_Node (Procedure_To_Call (Node));
+ Write_Char (']');
+ end if;
+
+ Write_Char (';');
+
when N_Selective_Accept =>
Write_Indent_Str_Sloc ("select");