[fpc-devel] Broken frac functionin FPC3.1.1 / Windows x86_64

J. Gareth Moreton gareth at moreton-family.com
Thu May 3 04:55:42 CEST 2018

 Tests complete! It turns out that I was using SetExceptionMask wrong and
subtracting rather than adding exInvalidOp.

 When exceptions are disabled, this new Frac function returns NaN when you
pass in plus or minus infinity.  This is consistent with the specification
as listed in Chapter 11, Section of the Intel® 64 and IA-32
Architectures Software Developer's Manual which dicates that if the cause
is "Addition of opposite signed infinities or subtraction of like-signed
infinities" (the last line in the procedure is SUBSD that effectively
performs "x - Int(x)"), the result is to "Return the QNaN floating-point

 Gareth aka. Kit
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20180503/b655975b/attachment.html>

More information about the fpc-devel mailing list