From 7bf53b1a612b1fe08d80d823981879486531ea11 Mon Sep 17 00:00:00 2001 From: Justin Squirek Date: Wed, 13 May 2020 18:59:29 -0400 Subject: [PATCH] [Ada] Hang on conditional expression as actual gcc/ada/ * exp_ch6.adb (Expand_Branch): Verify the original node is a conditional expression before recursing further. (Insert_Level_Assign): Transform assertion into an explicit raise. --- gcc/ada/exp_ch6.adb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/ada/exp_ch6.adb b/gcc/ada/exp_ch6.adb index fb199837734..3ccf0c386c8 100644 --- a/gcc/ada/exp_ch6.adb +++ b/gcc/ada/exp_ch6.adb @@ -3947,6 +3947,11 @@ package body Exp_Ch6 is if Nkind (Expression (Assn)) = N_Expression_With_Actions + and then + Nkind_In + (Original_Node (Expression (Assn)), + N_Case_Expression, + N_If_Expression) then Insert_Level_Assign (Expression (Assn)); @@ -3983,7 +3988,10 @@ package body Exp_Ch6 is N_If_Statement); Next (Cond); - pragma Assert (Present (Cond)); + + if No (Cond) then + raise Program_Error; + end if; end loop; -- Iterate through if expression branches -- 2.30.2