From: Richard Kenner Date: Fri, 5 Mar 2021 22:28:52 +0000 (-0500) Subject: [Ada] Look at Others_Discrete_Choices for N_Others_Choice X-Git-Tag: basepoints/gcc-13~6736 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=24c554da57b6aa81fb311556ed8ec1c609befd45;p=thirdparty%2Fgcc.git [Ada] Look at Others_Discrete_Choices for N_Others_Choice gcc/ada/ * exp_util.adb (Expand_Static_Predicates_In_Choices): Handle Others_Discrete_Choices in N_Others_Choice. --- diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb index 860525d12a17..c2cdb4cfdf4e 100644 --- a/gcc/ada/exp_util.adb +++ b/gcc/ada/exp_util.adb @@ -5322,7 +5322,7 @@ package body Exp_Util is procedure Expand_Static_Predicates_In_Choices (N : Node_Id) is pragma Assert (Nkind (N) in N_Case_Statement_Alternative | N_Variant); - Choices : constant List_Id := Discrete_Choices (N); + Choices : List_Id := Discrete_Choices (N); Choice : Node_Id; Next_C : Node_Id; @@ -5330,6 +5330,13 @@ package body Exp_Util is C : Node_Id; begin + -- If this is an "others" alternative, we need to process any static + -- predicates in its Others_Discrete_Choices. + + if Nkind (First (Choices)) = N_Others_Choice then + Choices := Others_Discrete_Choices (First (Choices)); + end if; + Choice := First (Choices); while Present (Choice) loop Next_C := Next (Choice);