OSDN Git Service

config/
[pf3gnuchains/gcc-fork.git] / gcc / ada / gnatvsn.adb
index b0428a9..34f72e7 100644 (file)
@@ -53,9 +53,10 @@ package body Gnatvsn is
         " FOR A PARTICULAR PURPOSE.";
    end Gnat_Free_Software;
 
-   Version_String : String (1 .. Ver_Len_Max);
+   type char_array is array (Natural range <>) of aliased Character;
+   Version_String : char_array (0 .. Ver_Len_Max - 1);
    --  Import the C string defined in the (language-independent) source file
-   --  version.c.
+   --  version.c using the zero-based convention of the C language.
    --  The size is not the real one, which does not matter since we will
    --  check for the nul character in Gnat_Version_String.
    pragma Import (C, Version_String, "version_string");
@@ -65,15 +66,17 @@ package body Gnatvsn is
    -------------------------
 
    function Gnat_Version_String return String is
-      NUL_Pos : Positive := 1;
+      S : String (1 .. Ver_Len_Max);
+      Pos : Natural := 0;
    begin
       loop
-         exit when Version_String (NUL_Pos) = ASCII.NUL;
+         exit when Version_String (Pos) = ASCII.NUL;
 
-         NUL_Pos := NUL_Pos + 1;
+         S (Pos + 1) := Version_String (Pos);
+         Pos := Pos + 1;
       end loop;
 
-      return Version_String (1 .. NUL_Pos - 1);
+      return S (1 .. Pos);
    end Gnat_Version_String;
 
 end Gnatvsn;