As mentioned already here (#2975 (comment)), after the recent GCC change gcc-mirror/gcc@8020c9c, the following test-case fails now:
[ 23s] /home/abuild/rpmbuild/BUILD/fmt-9.1.0/test/chrono-test.cc:571: Failure
[ 23s] Expected equality of these values:
[ 23s] "44.000000000000"
[ 23s] fmt::format("{:%S}", std::chrono::duration<float, std::pico>( 1.54213895E+26))
[ 23s] Which is: "16.430007934570"
[ 23s] [ FAILED ] chrono_test.special_durations (0 ms)
A reduced test case can be seen here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109085.
This is related to the excess precision provided by X87 and can be fixed with either -ffloat-store or -fexcess-precision=standard. Note that the default precision is going to change for GCC 13: https://gcc.gnu.org/gcc-13/porting_to.html#excess-precision.
One more comment about using -fexcess-precision=standard on i686, apparently, it breaks the following test-case:
[ 43s] /home/abuild/rpmbuild/BUILD/fmt-9.1.0/test/format-test.cc:1395: Failure
[ 43s] Expected equality of these values:
[ 43s] "0.10000000149011612"
[ 43s] fmt::format("{}", double(0.1f))
[ 43s] Which is: "0.1"
[ 43s] [ FAILED ] format_test.prettify_float (0 ms)
Can you please take a look, @vitaut?
As mentioned already here (#2975 (comment)), after the recent GCC change gcc-mirror/gcc@8020c9c, the following test-case fails now:
A reduced test case can be seen here: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109085.
This is related to the excess precision provided by X87 and can be fixed with either
-ffloat-storeor-fexcess-precision=standard. Note that the default precision is going to change for GCC 13: https://gcc.gnu.org/gcc-13/porting_to.html#excess-precision.One more comment about using
-fexcess-precision=standardon i686, apparently, it breaks the following test-case:Can you please take a look, @vitaut?