[Ada] Remove redundant calls to UI_To_Int in relational operands
authorPiotr Trojanek <trojanek@adacore.com>
Mon, 23 Nov 2020 22:52:59 +0000 (23:52 +0100)
committerPierre-Marie de Rodat <derodat@adacore.com>
Tue, 15 Dec 2020 11:41:52 +0000 (06:41 -0500)
gcc/ada/

* exp_disp.adb (Make_Tags): Remove call to UI_To_Int.
* sem_attr.adb (Check_Array_Type): Likewise; also, refine type
of a local variable.
(Analyze_Attribute): Likewise.
(Get_Enclosing_Object): Likewise.
* sem_util.adb (Get_Enum_Lit_From_Pos): Likewise.

gcc/ada/exp_disp.adb
gcc/ada/sem_attr.adb
gcc/ada/sem_util.adb

index 1a41d794bfd1c5e25f8adba5dcbfb09a19a1de90..14f25db390d26b15ea87405fc86e747725c528f8 100644 (file)
@@ -7241,7 +7241,7 @@ package body Exp_Disp is
       --     is used by Build_Get_Prim_Op_Address to expand dispatching calls
       --     through the primary dispatch table.
 
-      if UI_To_Int (DT_Entry_Count (First_Tag_Component (Typ))) = 0 then
+      if DT_Entry_Count (First_Tag_Component (Typ)) = 0 then
          Analyze_List (Result);
 
       --     Generate:
index 537da93dc662dc0b9026242401dcf2e00b28a2a5..58cb92fb54b8734cdffe175ef0c3b47df3f23bd8 100644 (file)
@@ -1656,7 +1656,7 @@ package body Sem_Attr is
       ----------------------
 
       procedure Check_Array_Type is
-         D : Int;
+         D : Pos;
          --  Dimension number for array attributes
 
       begin
@@ -1741,9 +1741,7 @@ package body Sem_Attr is
                  ("expression for dimension must be static!", E1);
                Error_Attr;
 
-            elsif UI_To_Int (Expr_Value (E1)) > D
-              or else UI_To_Int (Expr_Value (E1)) < 1
-            then
+            elsif Expr_Value (E1) > D or else Expr_Value (E1) < 1 then
                Error_Attr ("invalid dimension number for array type", E1);
             end if;
          end if;
@@ -4838,7 +4836,7 @@ package body Sem_Attr is
                Error_Attr;
 
             elsif UI_To_Int (Intval (E1)) > Number_Formals (Entity (P))
-              or else UI_To_Int (Intval (E1)) < 0
+              or else Intval (E1) < 0
             then
                Error_Attr ("invalid parameter number for % attribute", E1);
             end if;
index 30d4457ea311d39eb2d54e02585df51779c18447..063860af48c42075426a6f985054707386030c37 100644 (file)
@@ -10553,7 +10553,7 @@ package body Sem_Util is
 
          --  Position in the enumeration type starts at 0
 
-         if UI_To_Int (Pos) < 0 then
+         if Pos < 0 then
             raise Constraint_Error;
          end if;