[Ada] AI12-0366 Changes to Big_Integer and Big_Real
authorArnaud Charlet <charlet@adacore.com>
Thu, 7 May 2020 07:09:18 +0000 (03:09 -0400)
committerPierre-Marie de Rodat <derodat@adacore.com>
Mon, 6 Jul 2020 11:35:09 +0000 (07:35 -0400)
gcc/ada/

* libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb,
libgnat/a-nbnbin__gmp.adb: Use more Valid_Big_Integer.

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

index 9c8b7333cb8ab463d8cf616324ffbe59f8834014..5d415d9c17b07147c96e88cb02e8efa36d8a29b8 100644 (file)
@@ -133,7 +133,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
    -- To_Integer --
    ----------------
 
-   function To_Integer (Arg : Big_Integer) return Integer is
+   function To_Integer (Arg : Valid_Big_Integer) return Integer is
    begin
       return Integer (From_Bignum (Get_Bignum (Arg)));
    end To_Integer;
@@ -159,7 +159,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
       -- From_Big_Integer --
       ----------------------
 
-      function From_Big_Integer (Arg : Big_Integer) return Int is
+      function From_Big_Integer (Arg : Valid_Big_Integer) return Int is
       begin
          return Int (From_Bignum (Get_Bignum (Arg)));
       end From_Big_Integer;
@@ -187,7 +187,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
       -- From_Big_Integer --
       ----------------------
 
-      function From_Big_Integer (Arg : Big_Integer) return Int is
+      function From_Big_Integer (Arg : Valid_Big_Integer) return Int is
       begin
          return Int (From_Bignum (Get_Bignum (Arg)));
       end From_Big_Integer;
index 98619aa88cc78317b23064f905fbc43649a5c017..74232f9cbe815dbb1c15fe11690aab603c6eae4b 100644 (file)
@@ -58,10 +58,11 @@ is
              then Big_Natural >= To_Big_Integer (0)),
           Predicate_Failure => (raise Constraint_Error);
 
-   function In_Range (Arg, Low, High : Big_Integer) return Boolean is
-     ((Low <= Arg) and (Arg <= High));
+   function In_Range
+     (Arg : Valid_Big_Integer; Low, High : Big_Integer) return Boolean
+   is (Low <= Arg and Arg <= High);
 
-   function To_Integer (Arg : Big_Integer) return Integer
+   function To_Integer (Arg : Valid_Big_Integer) return Integer
      with Pre => In_Range (Arg,
                            Low  => To_Big_Integer (Integer'First),
                            High => To_Big_Integer (Integer'Last))
@@ -73,7 +74,7 @@ is
 
       function To_Big_Integer (Arg : Int) return Valid_Big_Integer;
 
-      function From_Big_Integer (Arg : Big_Integer) return Int
+      function From_Big_Integer (Arg : Valid_Big_Integer) return Int
         with Pre => In_Range (Arg,
                               Low  => To_Big_Integer (Int'First),
                               High => To_Big_Integer (Int'Last))
@@ -87,7 +88,7 @@ is
 
       function To_Big_Integer (Arg : Int) return Valid_Big_Integer;
 
-      function From_Big_Integer (Arg : Big_Integer) return Int
+      function From_Big_Integer (Arg : Valid_Big_Integer) return Int
         with Pre => In_Range (Arg,
                               Low  => To_Big_Integer (Int'First),
                               High => To_Big_Integer (Int'Last))
index 025272f90adaabd82e7ecde9d8341417035ca8a2..9481eed63a1dc82fbfe5baba4fc8d17efba08d59 100644 (file)
@@ -330,7 +330,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
    -- From_String --
    -----------------
 
-   function From_String (Arg : String) return Valid_Big_Integer is
+   function From_String (Arg : String) return Big_Integer is
       function mpz_set_str
         (this : access mpz_t;
          str  : System.Address;
@@ -405,7 +405,7 @@ package body Ada.Numerics.Big_Numbers.Big_Integers is
    -- Put_Image --
    ---------------
 
-   procedure Put_Image (S : in out Sink'Class; V : Big_Real) is
+   procedure Put_Image (S : in out Sink'Class; V : Big_Integer) is
       --  This is implemented in terms of To_String. It might be more elegant
       --  and more efficient to do it the other way around, but this is the
       --  most expedient implementation for now.