From f2142124997a3d87c5c6fd890876853cf2b81b1e Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 18 Jan 2005 23:05:06 +0100 Subject: [PATCH] re PR ada/13470 (64bits Ada bootstrap failure:xnmake etc. crash generating nmake.adb etc.) PR ada/13470 * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is set to the new string. From-SVN: r93858 --- gcc/ada/ChangeLog | 6 ++++++ gcc/ada/a-stunau.adb | 12 +++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog index fb0e9feff033..98559c931ad3 100644 --- a/gcc/ada/ChangeLog +++ b/gcc/ada/ChangeLog @@ -1,3 +1,9 @@ +2005-01-18 Jakub Jelinek + + PR ada/13470 + * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is + set to the new string. + 2004-11-04 Release Manager * GCC 3.4.3 released. diff --git a/gcc/ada/a-stunau.adb b/gcc/ada/a-stunau.adb index 2fe26cc8e723..9b23cb2d1f69 100644 --- a/gcc/ada/a-stunau.adb +++ b/gcc/ada/a-stunau.adb @@ -48,16 +48,18 @@ package body Ada.Strings.Unbounded.Aux is U_Ptr : constant Unbounded_String_Access := U'Unrestricted_Access; -- Unbounded_String is a controlled type which is always passed - -- by copy it is always safe to take the pointer to such object - -- here. This pointer is used to set the U.Reference value which - -- would not be possible otherwise as U is read-only. + -- by reference. It is always safe to take the pointer to such + -- object here. This pointer is used to set the U.Reference + -- value which would not be possible otherwise as U is read-only. Old : String_Access := U.Reference; + Ret : String_Access; begin - U_Ptr.Reference := new String'(U.Reference (1 .. U.Last)); + Ret := new String'(U.Reference (1 .. U.Last)); + U_Ptr.Reference := Ret; Free (Old); - return U.Reference; + return Ret; end; end if; end Get_String; -- 2.47.2