From b6f9471df1a4c22de519c7049a390235508bbee9 Mon Sep 17 00:00:00 2001 From: Eric Botcazou Date: Thu, 21 Jan 2021 13:12:50 +0100 Subject: [PATCH] [Ada] Do not second-guess the hardware for underflow handling of Scaling gcc/ada/ * libgnat/s-fatgen.adb (Scaling): Use single handling of underflow. Add pragma Annotate. --- gcc/ada/libgnat/s-fatgen.adb | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/gcc/ada/libgnat/s-fatgen.adb b/gcc/ada/libgnat/s-fatgen.adb index 145d4ac..ec376e7 100644 --- a/gcc/ada/libgnat/s-fatgen.adb +++ b/gcc/ada/libgnat/s-fatgen.adb @@ -781,11 +781,9 @@ package body System.Fat_Gen is -- Check for underflow elsif Adjustment < IEEE_Emin - Exp then - -- Check for gradual underflow + -- Check for possibly gradual underflow (up to the hardware) - if T'Denorm - and then Adjustment >= IEEE_Emin - Mantissa - Exp - then + if Adjustment >= IEEE_Emin - Mantissa - Exp then Expf := IEEE_Emin; Expi := Exp + Adjustment - Expf; @@ -810,6 +808,9 @@ package body System.Fat_Gen is -- Given that Expi >= -Mantissa, only -64 is problematic if Expi = -64 then + pragma Annotate + (CodePeer, Intentional, "test always false", + "test always false in some instantiations"); XX := XX / 2.0; Expi := -63; end if; -- 2.7.4