aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/gcc-interface/trans.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ada/gcc-interface/trans.c')
-rw-r--r--gcc/ada/gcc-interface/trans.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index ebb5b5c..fdcf9a3 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -7272,6 +7272,19 @@ gnat_to_gnu (Node_Id gnat_node)
gnu_result = alloc_stmt_list ();
break;
+ case N_Subunit:
+ gnu_result = gnat_to_gnu (Proper_Body (gnat_node));
+ break;
+
+ case N_Entry_Body:
+ case N_Protected_Body:
+ case N_Task_Body:
+ /* These nodes should only be present when annotating types. */
+ gcc_assert (type_annotate_only);
+ process_decls (Declarations (gnat_node), Empty, Empty, true, true);
+ gnu_result = alloc_stmt_list ();
+ break;
+
case N_Subprogram_Body_Stub:
case N_Package_Body_Stub:
case N_Protected_Body_Stub:
@@ -7286,10 +7299,6 @@ gnat_to_gnu (Node_Id gnat_node)
}
break;
- case N_Subunit:
- gnu_result = gnat_to_gnu (Proper_Body (gnat_node));
- break;
-
/***************************/
/* Chapter 11: Exceptions */
/***************************/
@@ -7662,8 +7671,6 @@ gnat_to_gnu (Node_Id gnat_node)
case N_Procedure_Specification:
case N_Op_Concat:
case N_Component_Association:
- case N_Protected_Body:
- case N_Task_Body:
/* These nodes should only be present when annotating types. */
gcc_assert (type_annotate_only);
gnu_result = alloc_stmt_list ();