From: Piotr Trojanek <troja...@adacore.com> Expansion of assignments to packed array objects with string literals on the right-hand side, created an unnecessary conversion, i.e.:
... := component_type (declare temp : component_type := "string_literal"; begin temp) Now the expansion omits the outer type conversion. Cleanup; behavior is unaffected. gcc/ada/ * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Simplify handling of assignments with string literals. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/exp_pakd.adb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gcc/ada/exp_pakd.adb b/gcc/ada/exp_pakd.adb index ef0ec1e0014..e197211736a 100644 --- a/gcc/ada/exp_pakd.adb +++ b/gcc/ada/exp_pakd.adb @@ -1143,9 +1143,10 @@ package body Exp_Pakd is Insert_Actions (N, New_List (Decl)); Rhs := New_Occurrence_Of (Defining_Identifier (Decl), Loc); end; + else + Rhs := Convert_To (Ctyp, Rhs); end if; - Rhs := Convert_To (Ctyp, Rhs); Set_Parent (Rhs, N); -- If we are building the initialization procedure for a packed array, -- 2.42.0