https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86837

            Bug ID: 86837
           Summary: Optimization breaks an unformatted read with implicit
                    loop on Mac OS X
           Product: gcc
           Version: 8.2.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: tmp147 at neuf dot fr
  Target Milestone: ---

Created attachment 44497
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44497&action=edit
minimal standalone program showing the problem

The attached code compiles and runs fine with -O0, but gives an inappropriate
warning and crashes at least with -O1 and -O2. In close variants, I've also had
no message when compiling, no error at runtime, but no read either.

OS     : Mac OS X High Sierra 10.13.6
Version: gfortran 8.2.0 installed by an up-to-date brew
         same problem with gcc@5, gcc@6, gcc@7

The results are ok at least on some linux, tested on
   - CentOS 6.5 / gcc 4.4.7 20120313 (Red Hat 4.4.7-4)
   - Mageia 4   / gcc 4.8.2
   - Mageia 6   / gcc 5.4 (or 5.5, not at work anymore...)


#### Run ok
gfortran -O0 -Wall -Wextra -fcheck=all read_loop.f90 -o read_loop &&
./read_loop
  1.
 11. 12.
 21. 22. 23. 24.

 Full array two_d:
  1. 11. 21.
 -9. 12. 22.
 -9. -9. 23.
 -9. -9. 24.


#### Run ko (only changed -O0 to -O1)
gfortran -O1 -Wall -Wextra -fcheck=all read_loop.f90 -o read_loop &&
./read_loop
read_loop.f90:40:0:

 read(10) ((two_d(i,j), i=1,nvalues(j)), j=1,3)

Warning: 'j' may be used uninitialized in this function [-Wmaybe-uninitialized]
At line 40 of file read_loop.f90
Fortran runtime error: Index '0' of dimension 1 of array 'nvalues' below lower
bound of 1

Error termination. Backtrace:
#0  0x1006e61ac
#1  0x1006e6e45
#2  0x1006e71ea
#3  0x1006debfe
#4  0x1006dec1d

Reply via email to