This completes the previous change that added assertions to Uintp.

Tested on x86_64-pc-linux-gnu, committed on trunk

gcc/ada/

        * uintp.ads, uintp.adb (UI_Is_In_Int_Range): Change the type of
        the formal parameter to Valid_Uint. Remove code that preserved
        the previous behavior, and replace it with an assertion. The
        previous behavior is no longer needed given the recent change to
        gigi.
        (No, Present): Add comment.
diff --git a/gcc/ada/uintp.adb b/gcc/ada/uintp.adb
--- a/gcc/ada/uintp.adb
+++ b/gcc/ada/uintp.adb
@@ -1693,16 +1693,15 @@ package body Uintp is
    -- UI_Is_In_Int_Range --
    -------------------------
 
-   function UI_Is_In_Int_Range (Input : Uint) return Boolean is
+   function UI_Is_In_Int_Range (Input : Valid_Uint) return Boolean is
+      pragma Assert (Present (Input));
+      --  Assertion is here in case we're called from C++ code, which does
+      --  not check the predicates.
    begin
       --  Make sure we don't get called before Initialize
 
       pragma Assert (Uint_Int_First /= Uint_0);
 
-      if No (Input) then -- Preserve old behavior
-         return True;
-      end if;
-
       if Direct (Input) then
          return True;
       else


diff --git a/gcc/ada/uintp.ads b/gcc/ada/uintp.ads
--- a/gcc/ada/uintp.ads
+++ b/gcc/ada/uintp.ads
@@ -90,6 +90,10 @@ package Uintp is
    Uint_Minus_127 : constant Uint;
    Uint_Minus_128 : constant Uint;
 
+   --  Functions for detecting No_Uint. Note that clients of this package
+   --  cannot use "=" and "/=" to compare with No_Uint; they must use No
+   --  and Present instead.
+
    function No (X : Uint) return Boolean is (X = No_Uint);
    --  Note that this is using the predefined "=", not the "=" declared below,
    --  which would blow up on No_Uint.
@@ -169,10 +173,9 @@ package Uintp is
    pragma Inline (UI_Gt);
    --  Compares integer values for greater than
 
-   function UI_Is_In_Int_Range (Input : Uint) return Boolean;
+   function UI_Is_In_Int_Range (Input : Valid_Uint) return Boolean;
    pragma Inline (UI_Is_In_Int_Range);
    --  Determines if universal integer is in Int range.
-   --  Input should probably be of type Valid_Uint.
 
    function UI_Le (Left : Valid_Uint; Right : Valid_Uint) return Boolean;
    function UI_Le (Left : Int;  Right : Valid_Uint) return Boolean;


Reply via email to