Date: Mon, 27 Nov 2017 18:44:38 +0100 From: Joerg Sonnenberger <jo...@bec.de> Message-ID: <20171127174438.ga20...@britannica.bec.de>
| Parsing a string constant is a well-defined | operation with precise result. A cross-compiler that doesn't do that | correctly is simply broken. I don't disagree with that, if you can tell me the PR number for the bug report on gcc (whichever version it is that the buildbots are using to make the i386 builds that babylony5 uses to run the tests) then I will happily mark the test as expected to fail on i386 until the PR is fixed. Tha is, of course, if that is what the problem is - it may also be that it is the libc strtod() on i386 that doesn't make the correct (ideal) conversion, and if that's true, then the PR number for that but would do equally well. I am not qualified to work out which it is - all I know is that the numbers as printed from printf were identical, yet did not compare equal, and apparently are equal within 1e-7, as the test now "works". Way back when I first learned floating point programming (something I have done astonishingly little of in the intervening decades) I was told it was *always* wrong to compare floats for exact equality - but of course, that was back in the days when almost all computing was numerical (simultaneous equation solfving, ffts, ...) and almost all written in fortran (the only language worthy of using) ... kre