From: Eric Botcazou Date: Thu, 21 Jan 2021 12:12:50 +0000 (+0100) Subject: [Ada] Do not second-guess the hardware for underflow handling of Scaling X-Git-Tag: basepoints/gcc-13~7763 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b6f9471df1a4c22de519c7049a390235508bbee9;p=thirdparty%2Fgcc.git [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. --- diff --git a/gcc/ada/libgnat/s-fatgen.adb b/gcc/ada/libgnat/s-fatgen.adb index 145d4ac9b0ec..ec376e73e45d 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;