[Ada] Avoid artificial underflow in System.Val_Real
authorEric Botcazou <ebotcazou@adacore.com>
Fri, 27 Nov 2020 18:52:35 +0000 (19:52 +0100)
committerPierre-Marie de Rodat <derodat@adacore.com>
Wed, 16 Dec 2020 13:01:01 +0000 (08:01 -0500)
commite8070c83ab40c11447ecd42f467041d65df4e807
tree18b2f139797853e084c6c00e34ed5bf9d07be566
parenta0d40c5c325e39f2c9365dafd86850d089eea118
[Ada] Avoid artificial underflow in System.Val_Real

gcc/ada/

* libgnat/s-valrea.adb (Maxexp32): New constant array.
(Maxexp64): Likewise.
(Maxexp80): Likewise.
(Integer_to_Real): New local constants Maxexp and B.
When the exponent is too negative, do the divison in two steps.
gcc/ada/libgnat/s-valrea.adb