[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