From: Eric Botcazou Date: Tue, 21 Apr 2020 10:58:23 +0000 (+0200) Subject: [Ada] Fix invalid expression sharing in Expand_Array_Equality X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2e64cf055250718d8e1659d37738c9eb2d2da1e3;p=gcc.git [Ada] Fix invalid expression sharing in Expand_Array_Equality 2020-06-18 Eric Botcazou gcc/ada/ * exp_ch4.adb (Expand_Array_Equality): For the optimization of the 2-element case, build new expression lists for the indices. --- diff --git a/gcc/ada/exp_ch4.adb b/gcc/ada/exp_ch4.adb index c4cd9b59f7b..2735a480bd4 100644 --- a/gcc/ada/exp_ch4.adb +++ b/gcc/ada/exp_ch4.adb @@ -2009,34 +2009,33 @@ package body Exp_Ch4 is Ctyp : constant Entity_Id := Component_Type (Ltyp); L, R : Node_Id; TestL, TestH : Node_Id; - Index_List : List_Id; begin - Index_List := New_List (New_Copy_Tree (Low_Bound (First_Idx))); - L := Make_Indexed_Component (Loc, Prefix => New_Copy_Tree (New_Lhs), - Expressions => Index_List); + Expressions => + New_List (New_Copy_Tree (Low_Bound (First_Idx)))); R := Make_Indexed_Component (Loc, Prefix => New_Copy_Tree (New_Rhs), - Expressions => Index_List); + Expressions => + New_List (New_Copy_Tree (Low_Bound (First_Idx)))); TestL := Expand_Composite_Equality (Nod, Ctyp, L, R, Bodies); - Index_List := New_List (New_Copy_Tree (High_Bound (First_Idx))); - L := Make_Indexed_Component (Loc, Prefix => New_Lhs, - Expressions => Index_List); + Expressions => + New_List (New_Copy_Tree (High_Bound (First_Idx)))); R := Make_Indexed_Component (Loc, Prefix => New_Rhs, - Expressions => Index_List); + Expressions => + New_List (New_Copy_Tree (High_Bound (First_Idx)))); TestH := Expand_Composite_Equality (Nod, Ctyp, L, R, Bodies);