From: Bob Duff Date: Tue, 6 Jul 2021 20:56:58 +0000 (-0400) Subject: [Ada] Remove if_expression X-Git-Tag: upstream/12.2.0~4954 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=911b00fba9a092448035c0951d5b229819124d20;p=platform%2Fupstream%2Fgcc.git [Ada] Remove if_expression gcc/ada/ * sem_eval.adb (Fold_Shift): Replace an if_expression with an if_statement. --- diff --git a/gcc/ada/sem_eval.adb b/gcc/ada/sem_eval.adb index da51caa..6f81406 100644 --- a/gcc/ada/sem_eval.adb +++ b/gcc/ada/sem_eval.adb @@ -5063,12 +5063,20 @@ package body Sem_Eval is -- result is always positive, even if the original operand was -- negative. - Fold_Uint - (N, - (Expr_Value (Left) + - (if Expr_Value (Left) >= Uint_0 then Uint_0 else Modulus)) - / (Uint_2 ** Expr_Value (Right)), - Static => Static); + declare + M : Unat; + begin + if Expr_Value (Left) >= Uint_0 then + M := Uint_0; + else + M := Modulus; + end if; + + Fold_Uint + (N, + (Expr_Value (Left) + M) / (Uint_2 ** Expr_Value (Right)), + Static => Static); + end; end if; elsif Op = N_Op_Shift_Right_Arithmetic then Check_Elab_Call;