Explorar el Código

* fixes #40438 signed zero handling.

marcoonthegit hace 2 años
padre
commit
7d4cecda0b
Se han modificado 1 ficheros con 4 adiciones y 1 borrados
  1. 4 1
      packages/rtl-extra/src/inc/real48utils.pp

+ 4 - 1
packages/rtl-extra/src/inc/real48utils.pp

@@ -69,7 +69,10 @@ begin
 
   { copy exponent }
   { correct exponent: }
-  rrec.E := drec.E - 1023 + 129;
+  if drec.E<>0 then  
+    rrec.E := drec.E - 1023 + 129
+  else
+    rrec.E:=0;         // signed zero exception.  Note E=2047=inf.
 
   { set sign }
   rrec.S := drec.S;