Browse Source

* fixes #40438 signed zero handling.

marcoonthegit 1 year ago
parent
commit
7d4cecda0b
1 changed files with 4 additions and 1 deletions
  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;