OSDN Git Service

PR ada/13470
authorjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Jan 2005 22:00:12 +0000 (22:00 +0000)
committerjakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 18 Jan 2005 22:00:12 +0000 (22:00 +0000)
* a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is
set to the new string.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93857 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/ChangeLog
gcc/ada/a-stunau.adb

index 1ad4753..0019750 100644 (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
index 2fe26cc..9b23cb2 100644 (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;