https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116230
Bug ID: 116230 Summary: Testsuite of liborcus fails with GCC 14 on i586 since r14-1891-g154c69039571c6 Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: jamborm at gcc dot gnu.org CC: vmakarov at gcc dot gnu.org Target Milestone: --- Host: x86_64-linux-gnu Target: i586-linux-gnu Created attachment 58829 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=58829&action=edit pre-processed source OpenSUSE Tumbleweed package of liborcus does not build because of a failed test in its test-suite. The failure looks eerily like a micompilation to me, a comparison of two doubles ends up taking the branch for the case when they are not equal even when a follow-up check with memcmp (added by me) claims they are bit-identical. I am attaching pre-processed source that I extracted from the test-suite and which, when compiled with GCC 13 when on a x86_64-linux host with options -O2 -m32 to get a 32-bit binary, runs fine but asserts when build with GCC 14 and the same options. I could bisect this behavior to r14-1891-g154c69039571c6 (Vladimir N. Makarov: RA: Ignore conflicts for some pseudos from insns throwing a final exception). mjambor@fischer:/home/mjambor/gcc/mine/test/liborcus$ /home/mjambor/gcc/13/inst/bin/g++ -O2 -m32 orig.ii mjambor@fischer:/home/mjambor/gcc/mine/test/liborcus$ LD_LIBRARY_PATH=/home/mjambor/gcc/13/inst/lib64:/home/mjambor/gcc/13/inst/lib ./a.out && echo OK OK mjambor@fischer:/home/mjambor/gcc/mine/test/liborcus$ /home/mjambor/gcc/14/inst/bin/g++ -O2 -m32 orig.ii mjambor@fischer:/home/mjambor/gcc/mine/test/liborcus$ LD_LIBRARY_PATH=/home/mjambor/gcc/14/inst/lib64:/home/mjambor/gcc/14/inst/lib ./a.out && echo OK ehm? '-6.e3' was expected to be parsed as (-6000 ), but the parser parsed it as (-6000 a.out: tst.cc:298: void test_generic_number_parsing(): Assertion `run_checks<parser_type>(checks)' failed. Aborted (core dumped)