--- gcc/ada/s-fore.adb.orig 2010-04-29 21:11:59.000000000 -0400 +++ gcc/ada/s-fore.adb 2010-04-29 21:12:34.000000000 -0400 @@ -38,12 +38,22 @@ ---------- function Fore (Lo, Hi : Long_Long_Float) return Natural is - T : Long_Long_Float := Long_Long_Float'Max (abs Lo, abs Hi); +-- T : Long_Long_Float := Long_Long_Float'Max (abs Lo, abs Hi); + T : Long_Long_Float; R : Natural; + ALo : Long_Long_Float; + AHi : Long_Long_Float; begin -- Initial value of 2 allows for sign and mandatory single digit + ALo := abs Lo; + AHi := abs Hi; + if ALo > AHi then + T := ALo; + else + T := AHi; + end if; R := 2; -- Loop to increase Fore as needed to include full range of values