[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.
This commit is contained in:
parent
1c4b5a795a
commit
7bf53b1a61
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user