[Ada] Compiler crash on limited conditional expressions

gcc/ada/

	* exp_ch3.adb (Expand_N_Object_Declaration): Avoid crash in case
	of conditional expression.
This commit is contained in:
Bob Duff 2020-11-12 14:40:39 -05:00 committed by Pierre-Marie de Rodat
parent 2bf891fa75
commit e783561e9c

View File

@ -7403,12 +7403,12 @@ package body Exp_Ch3 is
-- If we cannot convert the expression into a renaming we must
-- consider it an internal error because the backend does not
-- have support to handle it. Also, when a raise expression is
-- encountered we ignore it since it doesn't return a value and
-- thus cannot trigger a copy.
-- have support to handle it. But avoid crashing on a raise
-- expression or conditional expression.
elsif Nkind (Original_Node (Expr_Q)) /= N_Raise_Expression then
pragma Assert (False);
elsif Nkind (Original_Node (Expr_Q)) not in
N_Raise_Expression | N_If_Expression | N_Case_Expression
then
raise Program_Error;
end if;