https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110477
Bug ID: 110477 Summary: -fexcess-precision=standard not applied consistently Product: gcc Version: 13.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: pdimov at gmail dot com Target Milestone: --- The following program float f( float x, int y ) { return x + y; } int main() { return f( 3.14f, 1 ) == 3.14f + 1; } returns different values with -std=c++XX (https://godbolt.org/z/8dK98ondM) and -std=gnu++XX (https://godbolt.org/z/4Y4qfsKzM) under GCC 13/14 -m32, because -fexcess-precision=standard is not consistently applied to both sides of the comparison. Under -fexcess-precision=fast (and hence under previous GCC versions), the comparison always succeeds because both sides use excess precision (https://godbolt.org/z/dzdoxdnM9). This is the runtime equivalent of https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110476.