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: r93857
This commit is contained in:
Jakub Jelinek 2005-01-18 23:00:12 +01:00 committed by Jakub Jelinek
parent b4c6a3a23c
commit 4d960a7ee7
2 changed files with 13 additions and 5 deletions

View File

@ -1,3 +1,9 @@
2005-01-18 Jakub Jelinek <jakub@redhat.com>
PR ada/13470
* a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
set to the new string.
2005-01-18 Toon Moene <toon@moene.indiv.nluug.nl>
* system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support

View File

@ -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;