aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2005-01-18 23:00:12 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2005-01-18 23:00:12 +0100
commit4d960a7ee7c2e444fbde163dc0c17da4416223ac (patch)
treecd94fa86e019b72460ee04cc6b412dec3af69e41 /gcc
parentb4c6a3a23cd2d269640cc45b9a2f57df6ab9d15e (diff)
downloadgcc-4d960a7ee7c2e444fbde163dc0c17da4416223ac.zip
gcc-4d960a7ee7c2e444fbde163dc0c17da4416223ac.tar.gz
gcc-4d960a7ee7c2e444fbde163dc0c17da4416223ac.tar.bz2
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/ChangeLog6
-rw-r--r--gcc/ada/a-stunau.adb12
2 files changed, 13 insertions, 5 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 1ad4753..0019750 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -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
diff --git a/gcc/ada/a-stunau.adb b/gcc/ada/a-stunau.adb
index 2fe26cc..9b23cb2 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;