[Bug libfortran/106083] New: gfortran.dg/ieee/large_1.f90 fails on powerpc64 with ieee longlongs
seurer at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Fri Jun 24 22:39:33 GMT 2022
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
More information about the Gcc-bugs
mailing list