From 55d11e8751e070e38f981e308d84dfde23c2af3d Mon Sep 17 00:00:00 2001 From: Piotr Trojanek Date: Thu, 22 Feb 2024 22:26:01 +0100 Subject: [PATCH] ada: Improve recovery from illegal occurrence of 'Old in if_expression Fix assertion failure in developer builds which happened when the THEN expression contains an illegal occurrence of 'Old and the type of the THEN expression is left as Any_Type, but there is no ELSE expression. gcc/ada/ * sem_ch4.adb (Analyze_If_Expression): Add guard for if_expression without an ELSE part. --- gcc/ada/sem_ch4.adb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/ada/sem_ch4.adb b/gcc/ada/sem_ch4.adb index b4414a3f7ff..03364dade9f 100644 --- a/gcc/ada/sem_ch4.adb +++ b/gcc/ada/sem_ch4.adb @@ -2645,7 +2645,7 @@ package body Sem_Ch4 is ("\ELSE expression has}!", Else_Expr, Etype (Else_Expr)); end if; - else + elsif Present (Else_Expr) then if Is_Overloaded (Else_Expr) then Error_Msg_N ("no interpretation compatible with type of THEN expression", -- 2.47.2