This removes the use clause for System.Unsigned_Type and replaces it
with a localized use type clause for Long_Long_Unsigned.

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

gcc/ada/

        * libgnat/s-fatgen.adb: Remove use clause for
        System.Unsigned_Types.
        (Scaling): Add renaming of System.Unsigned_Types and use type
        clause for Long_Long_Unsigned.
diff --git a/gcc/ada/libgnat/s-fatgen.adb b/gcc/ada/libgnat/s-fatgen.adb
--- a/gcc/ada/libgnat/s-fatgen.adb
+++ b/gcc/ada/libgnat/s-fatgen.adb
@@ -35,7 +35,7 @@
 --  floating-point implementations.
 
 with Ada.Unchecked_Conversion;
-with System.Unsigned_Types; use System.Unsigned_Types;
+with System.Unsigned_Types;
 
 pragma Warnings (Off, "non-static constant in preelaborated unit");
 --  Every constant is static given our instantiation model
@@ -586,6 +586,9 @@ package body System.Fat_Gen is
       pragma Assert (Mantissa <= 64);
       --  This implementation handles only 80-bit IEEE Extended or smaller
 
+      package UST renames System.Unsigned_Types;
+      use type UST.Long_Long_Unsigned;
+
       XX : T := T'Machine (X);
 
       Rep : Float_Rep;
@@ -661,7 +664,7 @@ package body System.Fat_Gen is
                         Float_Word (IEEE_Ebias + Expf) * Exp_Factor;
 
          if Expi < 0 then
-            XX := XX / T (Long_Long_Unsigned (2) ** (-Expi));
+            XX := XX / T (UST.Long_Long_Unsigned (2) ** (-Expi));
          end if;
 
          return XX;


Reply via email to