Commit edc01ab
test: make ValueTest/objects float check robust against x87 excess precision (#1700)
ValueTest/objects stores the float literal 0.12345f into a Json::Value
(widened to the stored double) and then asserts equality against the
original 0.12345f. On 32-bit x86 targets where GCC defaults to x87 math
(-mfpmath=387, 80-bit excess precision) and the baseline lacks SSE2, the
round-trip yields the exact double 0.12345 rather than the float-widened
0.12345000356435776, so the exact double comparison fails even though the
library itself is correct.
Compare the stored value narrowed back to float via asFloat(): both the
expected literal and asFloat() collapse to the same float value on every
architecture, keeping the numeric round-trip check while making it
precision-robust.
Co-authored-by: Jordan Bayles <bayles.jordan@gmail.com>1 parent affc500 commit edc01ab
1 file changed
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
352 | 352 | | |
353 | 353 | | |
354 | 354 | | |
355 | | - | |
| 355 | + | |
356 | 356 | | |
357 | 357 | | |
358 | 358 | | |
| |||
0 commit comments