From 6ec9c97a3597abdbf370dd4ebb5806fd64369370 Mon Sep 17 00:00:00 2001 From: Ed Schonberg Date: Wed, 15 Feb 2006 10:38:19 +0100 Subject: [PATCH] exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a string... 2006-02-13 Ed Schonberg * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a string, and the context requires a loop for the assignment (e.g. because the left-hand side is packed), generate a unique name for the temporary that holds the string, to prevent spurious name clashes. From-SVN: r111061 --- gcc/ada/exp_ch5.adb | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/gcc/ada/exp_ch5.adb b/gcc/ada/exp_ch5.adb index f28d87d33d5..924e3e53d94 100644 --- a/gcc/ada/exp_ch5.adb +++ b/gcc/ada/exp_ch5.adb @@ -6,7 +6,7 @@ -- -- -- B o d y -- -- -- --- Copyright (C) 1992-2005, Free Software Foundation, Inc. -- +-- Copyright (C) 1992-2006, Free Software Foundation, Inc. -- -- -- -- GNAT is free software; you can redistribute it and/or modify it under -- -- terms of the GNU General Public License as published by the Free Soft- -- @@ -506,7 +506,7 @@ package body Exp_Ch5 is if Nkind (Rhs) = N_String_Literal then declare Temp : constant Entity_Id := - Make_Defining_Identifier (Loc, Name_T); + Make_Defining_Identifier (Loc, New_Internal_Name ('T')); Decl : Node_Id; begin @@ -1631,18 +1631,6 @@ package body Exp_Ch5 is Apply_Constraint_Check (Rhs, Etype (Lhs)); end if; - -- If we are assigning an access type and the left side is an - -- entity, then make sure that Is_Known_Non_Null properly - -- reflects the state of the entity after the assignment - - if Is_Access_Type (Typ) - and then Is_Entity_Name (Lhs) - and then Known_Non_Null (Rhs) - and then Safe_To_Capture_Value (N, Entity (Lhs)) - then - Set_Is_Known_Non_Null (Entity (Lhs), Known_Non_Null (Rhs)); - end if; - -- Case of assignment to a bit packed array element if Nkind (Lhs) = N_Indexed_Component @@ -2809,14 +2797,14 @@ package body Exp_Ch5 is -- Nothing to do if we are returning by reference, or this is not -- a type that requires special processing (indicated by the fact - -- that it requires a cleanup scope for the secondary stack case) + -- that it requires a cleanup scope for the secondary stack case). if Is_Return_By_Reference_Type (T) then null; elsif not Requires_Transient_Scope (Return_Type) then - -- mutable records with no variable length components are not + -- Mutable records with no variable length components are not -- returned on the sec-stack so we need to make sure that the -- backend will only copy back the size of the actual value and not -- the maximum size. We create an actual subtype for this purpose -- 2.30.2