[gcc/devel/c++-modules] [Ada] AI12-0366 Changes to Big_Integer and Big_Real

Nathan Sidwell nathan@gcc.gnu.org
Wed Jul 8 18:55:16 GMT 2020


https://gcc.gnu.org/g:90d8163d9b9d90ceeead4e360b9d8d8dc2878074

commit 90d8163d9b9d90ceeead4e360b9d8d8dc2878074
Author: Arnaud Charlet <charlet@adacore.com>
Date:   Thu May 7 03:09:18 2020 -0400

    [Ada] AI12-0366 Changes to Big_Integer and Big_Real
    
    gcc/ada/
    
            * libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb,
            libgnat/a-nbnbin__gmp.adb: Use more Valid_Big_Integer.

Diff:
---
 gcc/ada/libgnat/a-nbnbin.adb      |  6 +++---
 gcc/ada/libgnat/a-nbnbin.ads      | 11 ++++++-----
 gcc/ada/libgnat/a-nbnbin__gmp.adb |  4 ++--
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/gcc/ada/libgnat/a-nbnbin.adb b/gcc/ada/libgnat/a-nbnbin.adb
index 9c8b7333cb8..5d415d9c17b 100644
--- a/gcc/ada/libgnat/a-nbnbin.adb
+++ b/gcc/ada/libgnat/a-nbnbin.adb
@@ -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;
diff --git a/gcc/ada/libgnat/a-nbnbin.ads b/gcc/ada/libgnat/a-nbnbin.ads
index 98619aa88cc..74232f9cbe8 100644
--- a/gcc/ada/libgnat/a-nbnbin.ads
+++ b/gcc/ada/libgnat/a-nbnbin.ads
@@ -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))
diff --git a/gcc/ada/libgnat/a-nbnbin__gmp.adb b/gcc/ada/libgnat/a-nbnbin__gmp.adb
index 025272f90ad..9481eed63a1 100644
--- a/gcc/ada/libgnat/a-nbnbin__gmp.adb
+++ b/gcc/ada/libgnat/a-nbnbin__gmp.adb
@@ -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.


More information about the Gcc-cvs mailing list