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)

Reply via email to