https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106083
Bug ID: 106083 Summary: gfortran.dg/ieee/large_1.f90 fails on powerpc64 with ieee longlongs Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libfortran Assignee: unassigned at gcc dot gnu.org Reporter: seurer at gcc dot gnu.org Target Milestone: --- make -k check-fortran RUNTESTFLAGS="ieee.exp=gfortran.dg/ieee/large_1.f90" FAIL: gfortran.dg/ieee/large_1.f90 -O0 execution test FAIL: gfortran.dg/ieee/large_1.f90 -O1 execution test FAIL: gfortran.dg/ieee/large_1.f90 -O2 execution test FAIL: gfortran.dg/ieee/large_1.f90 -O3 -fomit-frame-pointer -funroll-loops -fpeel-loops -ftracer -finline-functions execution test FAIL: gfortran.dg/ieee/large_1.f90 -O3 -g execution test FAIL: gfortran.dg/ieee/large_1.f90 -Os execution test This occurs with the compiler configured with --with-long-double-format=ieee on a distro (Fedora 36) which also used --with-long-double-format=ieee. It fails when compiled with gcc 10, 12, and trunk but works when compiled with gcc 11. The code generated for gcc 11 is identical to that for gcc 12 which is why I suspect a library difference. spawn -ignore SIGHUP /home/seurer/gcc/git/build/gcc-ieee/gcc/testsuite/gfortran/../../gfortran -B/home/seurer/gcc/git/build/gcc-ieee/gcc/testsuite/gfortran/../../ -B/home/seurer/gcc/git/build/gcc-ieee/powerpc64le-unknown-linux-gnu/./libgfortran/ /home/seurer/gcc/git/gcc-ieee/gcc/testsuite/gfortran.dg/ieee/large_1.f90 -fdiagnostics-plain-output -fdiagnostics-plain-output -O0 -pedantic-errors -fintrinsic-modules-path /home/seurer/gcc/git/build/gcc-ieee/powerpc64le-unknown-linux-gnu/./libgfortran/ -fno-unsafe-math-optimizations -frounding-math -fsignaling-nans -B/home/seurer/gcc/git/build/gcc-ieee/powerpc64le-unknown-linux-gnu/./libgfortran/.libs -L/home/seurer/gcc/git/build/gcc-ieee/powerpc64le-unknown-linux-gnu/./libgfortran/.libs -L/home/seurer/gcc/git/build/gcc-ieee/powerpc64le-unknown-linux-gnu/./libgfortran/.libs -L/home/seurer/gcc/git/build/gcc-ieee/powerpc64le-unknown-linux-gnu/./libatomic/.libs -B/home/seurer/gcc/git/build/gcc-ieee/powerpc64le-unknown-linux-gnu/./libquadmath/.libs -L/home/seurer/gcc/git/build/gcc-ieee/powerpc64le-unknown-linux-gnu/./libquadmath/.libs -L/home/seurer/gcc/git/build/gcc-ieee/powerpc64le-unknown-linux-gnu/./libquadmath/.libs -lm -o ./large_1.exe^M PASS: gfortran.dg/ieee/large_1.f90 -O0 (test for excess errors) ... spawn [open ...]^M STOP 2 FAIL: gfortran.dg/ieee/large_1.f90 -O0 execution test The code from large_1.f90 that fails is just: ! Testing IEEE modules on large real kinds program test use ieee_arithmetic implicit none ! k1 and k2 will be large real kinds, if supported, and single/double ! otherwise integer, parameter :: k1 = & max(ieee_selected_real_kind(precision(0.d0) + 1), kind(0.)) if (ieee_is_finite(ieee_value(0._k1, ieee_negative_inf))) STOP 2 end program test