From: Bob Duff Date: Fri, 5 Feb 2021 18:06:13 +0000 (-0500) Subject: [Ada] Fix bug in if_expressions introduced by var-size nodes changes X-Git-Tag: basepoints/gcc-13~6855 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b2339160162e80fd854a9caaaf0d3dd0207ede8e;p=thirdparty%2Fgcc.git [Ada] Fix bug in if_expressions introduced by var-size nodes changes gcc/ada/ * gen_il-gen.adb (Setter_Needs_Parent): Add missing Then_Actions. Fix self-contradictory comment. * exp_util.adb (Insert_Actions): Minor comment improvments. --- diff --git a/gcc/ada/exp_util.adb b/gcc/ada/exp_util.adb index c6c8d6c62531..1189870bd604 100644 --- a/gcc/ada/exp_util.adb +++ b/gcc/ada/exp_util.adb @@ -7203,8 +7203,8 @@ package body Exp_Util is -- Actions belong to the then expression, temporarily place -- them as Then_Actions of the if expression. They will be - -- moved to the proper place later when the if expression - -- is expanded. + -- moved to the proper place later when the if expression is + -- expanded. elsif N = ThenX then if Present (Then_Actions (P)) then @@ -7217,10 +7217,7 @@ package body Exp_Util is return; - -- Actions belong to the else expression, temporarily place - -- them as Else_Actions of the if expression. They will be - -- moved to the proper place later when the if expression - -- is expanded. + -- Else_Actions is treated the same as Then_Actions above elsif N = ElseX then if Present (Else_Actions (P)) then diff --git a/gcc/ada/gen_il-gen.adb b/gcc/ada/gen_il-gen.adb index 366628959506..cffbf2a87d16 100644 --- a/gcc/ada/gen_il-gen.adb +++ b/gcc/ada/gen_il-gen.adb @@ -479,13 +479,14 @@ package body Gen_IL.Gen is Node_Field_Types_Used, Entity_Field_Types_Used : Type_Set; Setter_Needs_Parent : Field_Set := - (Actions | Expression | Else_Actions => True, others => False); + (Actions | Expression | Then_Actions | Else_Actions => True, + others => False); -- Set of fields where the setter should set the Parent. True for -- syntactic fields of type Node_Id and List_Id, but with some - -- exceptions. Expression and Else_Actions are syntactic AND semantic, - -- and the Parent is needed. Default_Expression is also both, but the - -- Parent is not needed. Else_Actions is not syntactic, but the Parent - -- is needed. + -- exceptions. Expression is syntactic AND semantic, and the Parent + -- is needed. Default_Expression is also both, but the Parent is not + -- needed. Then_Actions and Else_Actions are not syntactic, but the + -- Parent is needed. procedure Check_Completeness; -- Check that every type and field has been declared