فهرست منبع

* fixes #40438 signed zero handling.

marcoonthegit 1 سال پیش
والد
کامیت
d3ac7f1d26
1فایلهای تغییر یافته به همراه4 افزوده شده و 1 حذف شده
  1. 4 1
      packages/rtl-extra/src/inc/real48utils.pp

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

@@ -71,7 +71,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;