From b626498f6e444ac40eab1a8eaeb843e743028b13 Mon Sep 17 00:00:00 2001 From: Piotr Trojanek Date: Tue, 12 Apr 2022 21:46:36 +0200 Subject: [PATCH] [Ada] Cleanup expansion of protected entry families Expansion of entry families contained a condition that was always true. Cleanup related to detection of uninitialized scalar objects (which uncovered that expansion of entry families creates a slightly illegal AST with Elsif_Parts being an empty list). gcc/ada/ * exp_ch9.adb (Build_Find_Body_Index): Remove IF statement whose condition was true-by-construction; remove excessive assertion (since the call to Elsif_Parts will check that Nod is present and it is an if-statement). --- gcc/ada/exp_ch9.adb | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/gcc/ada/exp_ch9.adb b/gcc/ada/exp_ch9.adb index 0e551ab..f9bdaf8 100644 --- a/gcc/ada/exp_ch9.adb +++ b/gcc/ada/exp_ch9.adb @@ -2793,20 +2793,14 @@ package body Exp_Ch9 is Expression => Make_Integer_Literal (Loc, 1)); else - pragma Assert (Present (Ret)); + -- Ranges are in increasing order, so last one doesn't need guard - if Nkind (Ret) = N_If_Statement then - - -- Ranges are in increasing order, so last one doesn't need - -- guard. - - declare - Nod : constant Node_Id := Last (Elsif_Parts (Ret)); - begin - Remove (Nod); - Set_Else_Statements (Ret, Then_Statements (Nod)); - end; - end if; + declare + Nod : constant Node_Id := Last (Elsif_Parts (Ret)); + begin + Remove (Nod); + Set_Else_Statements (Ret, Then_Statements (Nod)); + end; end if; end if; -- 2.7.4