https://gcc.gnu.org/g:55d11e8751e070e38f981e308d84dfde23c2af3d

commit r15-558-g55d11e8751e070e38f981e308d84dfde23c2af3d
Author: Piotr Trojanek <troja...@adacore.com>
Date:   Thu Feb 22 22:26:01 2024 +0100

    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.

Diff:
---
 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 b4414a3f7ff9..03364dade9f6 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",

Reply via email to