aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ada/libgnat/s-valrea.adb9
1 files changed, 4 insertions, 5 deletions
diff --git a/gcc/ada/libgnat/s-valrea.adb b/gcc/ada/libgnat/s-valrea.adb
index 1add4e9..a4afc90 100644
--- a/gcc/ada/libgnat/s-valrea.adb
+++ b/gcc/ada/libgnat/s-valrea.adb
@@ -82,13 +82,12 @@ package body System.Val_Real is
System.Float_Control.Reset;
end if;
- -- Take into account the extra digit near the limit to avoid anomalies
+ -- Take into account the extra digit
- if Extra > 0 and then Val <= Precision_Limit / Uns (Base) then
- R_Val := Num (Val * Uns (Base)) + Num (Extra);
+ R_Val := Num (Val);
+ if Extra > 0 then
+ R_Val := R_Val * Num (Base) + Num (Extra);
S := S - 1;
- else
- R_Val := Num (Val);
end if;
-- Compute the final value