]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
[Ada] AI12-0407: Fixups on Big_Integers and Big_Reals
authorArnaud Charlet <charlet@adacore.com>
Fri, 11 Dec 2020 08:57:08 +0000 (03:57 -0500)
committerPierre-Marie de Rodat <derodat@adacore.com>
Thu, 29 Apr 2021 08:00:43 +0000 (04:00 -0400)
gcc/ada/

* libgnat/a-nbnbin.ads (From_Universal_Image): New.
(Big_Integer): Update definition.
* libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb
(From_Universal_Image): New.
(From_String): Remove alternate body, replaced by
From_Universal_Image.
(Big_Real): Update definition.

gcc/ada/libgnat/a-nbnbin.ads
gcc/ada/libgnat/a-nbnbre.adb
gcc/ada/libgnat/a-nbnbre.ads

index 668da8df34214f798e1bf8a72c3260d1e5393b0a..31a8bc956cfb9823576ee3d80b670021eeafea85 100644 (file)
@@ -22,7 +22,7 @@ package Ada.Numerics.Big_Numbers.Big_Integers
   with Preelaborate
 is
    type Big_Integer is private
-     with Integer_Literal => From_String,
+     with Integer_Literal => From_Universal_Image,
           Put_Image       => Put_Image;
 
    function Is_Valid (Arg : Big_Integer) return Boolean
@@ -116,6 +116,9 @@ is
    function From_String (Arg : String) return Valid_Big_Integer
      with Global => null;
 
+   function From_Universal_Image (Arg : String) return Valid_Big_Integer
+     renames From_String;
+
    procedure Put_Image (S : in out Sink'Class; V : Big_Integer);
 
    function "+" (L : Valid_Big_Integer) return Valid_Big_Integer
index 4ff5b352851dc887245b996f67c31b4b4187f341..d475b86a4ac781e9fde0a2bd90bbf650851dede0 100644 (file)
@@ -593,13 +593,6 @@ package body Ada.Numerics.Big_Numbers.Big_Reals is
       end;
    end From_String;
 
-   function From_String
-     (Numerator, Denominator : String) return Valid_Big_Real is
-   begin
-      return Big_Integers.From_String (Numerator) /
-        Big_Integers.From_String (Denominator);
-   end From_String;
-
    --------------------------
    -- From_Quotient_String --
    --------------------------
index ee5636f21d13642d9a462720eb2ccefb2108a275..eb7c8a7e572e82f0143914ab477fb4f40dbe8d29 100644 (file)
@@ -21,7 +21,7 @@ package Ada.Numerics.Big_Numbers.Big_Reals
   with Preelaborate
 is
    type Big_Real is private with
-     Real_Literal => From_String,
+     Real_Literal => From_Universal_Image,
      Put_Image    => Put_Image;
 
    function Is_Valid (Arg : Big_Real) return Boolean
@@ -122,8 +122,13 @@ is
 
    function From_String (Arg : String) return Valid_Big_Real
      with Global => null;
-   function From_String (Numerator, Denominator : String) return Valid_Big_Real
-     with Global => null;
+
+   function From_Universal_Image (Arg : String) return Valid_Big_Real
+     renames From_String;
+   function From_Universal_Image (Num, Den : String) return Valid_Big_Real is
+     (Big_Integers.From_Universal_Image (Num) /
+      Big_Integers.From_Universal_Image (Den))
+      with Global => null;
 
    function To_Quotient_String (Arg : Big_Real) return String is
      (Big_Integers.To_String (Numerator (Arg)) & " / "