-
Notifications
You must be signed in to change notification settings - Fork 37
Open
Description
If I compile with -O0, I get the following test failure:
*** Failed! Falsifiable (after 1 test):
0.0
0.0
(used seed -8074436915145524066)
t_shortest: [Failed]
*** Failed! Falsifiable (after 1 test):
0.0
0.0
(used seed 5824167789149766384)
Regressions:
toShortest_overflow: [OK]
Properties Test Cases Total
Passed 0 1 1
Failed 2 0 2
Total 2 1 3
The test code in question is https://github.com/bos/double-conversion/blob/e4b7956d51fbb79ada95412519bd2a6a680def23/tests/Properties.hs#L9-L13
where a = 0.0, b = 0.0.
The problem seems to be the use of realToFrac (0.0 / 0.0). Note that 0.0/0.0 is NaN.
- With
-O,realToFrac NaNreturnsNaN - With
-O0,realToFrac NaNreturns-Infinity
You would expect realToFrac :: Double -> Double to always be id, but apparently that is not the case in GHC right now. It is so only if compile with optimisations.
Metadata
Metadata
Assignees
Labels
No labels