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;