[Bug lto/90577] New: [9/10 Regression] FAIL: gfortran.dg/lrshift_1.f90 with -O(2|3) and -flto
dominiq at lps dot ens.fr
gcc-bugzilla@gcc.gnu.org
Wed May 22 15:58:00 GMT 2019
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90577
Bug ID: 90577
Summary: [9/10 Regression] FAIL: gfortran.dg/lrshift_1.f90 with
-O(2|3) and -flto
Product: gcc
Version: 9.0
Status: UNCONFIRMED
Keywords: wrong-code
Severity: normal
Priority: P3
Component: lto
Assignee: unassigned at gcc dot gnu.org
Reporter: dominiq at lps dot ens.fr
CC: hubicka at gcc dot gnu.org, iains at gcc dot gnu.org,
marxin at gcc dot gnu.org
Target Milestone: ---
Testing fortran with -flto gives
Running /opt/gcc/work/gcc/testsuite/gfortran.dg/dg.exp ...
FAIL: gfortran.dg/lrshift_1.f90 -O2 execution test
FAIL: gfortran.dg/lrshift_1.f90 -O3 -fomit-frame-pointer -funroll-loops
-fpeel-loops -ftracer -finline-functions execution test
FAIL: gfortran.dg/lrshift_1.f90 -O3 -g execution test
FAIL: gfortran.dg/lrshift_1.f90 -Os execution test
=== gfortran Summary for unix/-m32/-flto ===
# of expected passes 10
# of unexpected failures 4
The behavior changed between revisions r268729 (2019-02-09, OK) and r269160
(2019-02-23, wrong-code).
With the following change
do n = 1, size(i)
do j = -30, 30
+ print *, n, j, lshift(i(n),j)
+ print *, n, j, c_lshift(i(n),j)
if (lshift(i(n),j) /= c_lshift(i(n),j)) STOP 1
if (rshift(i(n),j) /= c_rshift(i(n),j)) STOP 2
end do
the wrong code gives
1 -30 2
1 -30 -2
STOP 1
while the working one gives
1 -30 4
1 -30 4
1 -29 8
1 -29 8
...
I also see
FAIL: gfortran.dg/ISO_Fortran_binding_9.f90 -g -O3 -fwhole-program -flto
execution test
More information about the Gcc-bugs
mailing list