Commit 4e568a15 by Eric Botcazou Committed by Eric Botcazou

trans.c (gnat_to_gnu): Deal with a missing library unit instead of calling gnat_to_gnu on Emtpy.

	* gcc-interface/trans.c (gnat_to_gnu) <N_Subprogram_Body_Stub>: Deal
	with a missing library unit instead of calling gnat_to_gnu on Emtpy.
	Remove last bits of support for SCIL nodes.  Add cases for nodes that
	should only be present when annotating types.  Add default abort.

From-SVN: r193357
parent 49934659
2012-11-09 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/trans.c (gnat_to_gnu) <N_Subprogram_Body_Stub>: Deal
with a missing library unit instead of calling gnat_to_gnu on Emtpy.
Remove last bits of support for SCIL nodes. Add cases for nodes that
should only be present when annotating types. Add default abort.
2012-11-06 Eric Botcazou <ebotcazou@adacore.com> 2012-11-06 Eric Botcazou <ebotcazou@adacore.com>
* gcc-interface/Makefile.in: Revert most changes. * gcc-interface/Makefile.in: Revert most changes.
......
...@@ -6493,7 +6493,13 @@ gnat_to_gnu (Node_Id gnat_node) ...@@ -6493,7 +6493,13 @@ gnat_to_gnu (Node_Id gnat_node)
case N_Protected_Body_Stub: case N_Protected_Body_Stub:
case N_Task_Body_Stub: case N_Task_Body_Stub:
/* Simply process whatever unit is being inserted. */ /* Simply process whatever unit is being inserted. */
gnu_result = gnat_to_gnu (Unit (Library_Unit (gnat_node))); if (Present (Library_Unit (gnat_node)))
gnu_result = gnat_to_gnu (Unit (Library_Unit (gnat_node)));
else
{
gcc_assert (type_annotate_only);
gnu_result = alloc_stmt_list ();
}
break; break;
case N_Subunit: case N_Subunit:
...@@ -6855,11 +6861,20 @@ gnat_to_gnu (Node_Id gnat_node) ...@@ -6855,11 +6861,20 @@ gnat_to_gnu (Node_Id gnat_node)
gnu_result = alloc_stmt_list (); gnu_result = alloc_stmt_list ();
break; break;
default: case N_Function_Specification:
/* SCIL nodes require no processing for GCC. Other nodes should only case N_Procedure_Specification:
be present when annotating types. */ case N_Op_Concat:
gcc_assert (IN (kind, N_SCIL_Node) || type_annotate_only); 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 (); gnu_result = alloc_stmt_list ();
break;
default:
/* Other nodes are not supposed to reach here. */
gcc_unreachable ();
} }
/* If we pushed the processing of the elaboration routine, pop it back. */ /* If we pushed the processing of the elaboration routine, pop it back. */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment