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

            Bug ID: 88268
           Summary: Misleading extra warnings with -Wdo-subscript
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gs...@t-online.de
  Target Milestone: ---

Version 8/9 with option -Wextra or -Wdo-subscript gives an additional
warning for some valid code sections. Undesirable, but can be ignored.
Not recommendable to change a much more complex program because of this.


$ cat z1.f90
program p
   integer :: k, a, z(4)
   z = 789
   do k = 1, 4
      if ( k == 1 ) then
         a = 10
      else
         a = z(k-1)
      end if
      print *, k, a
   end do
end


$ cat z2.f90
program p
   integer :: k, a, z(4)
   z = 789
   do k = 1, 4
      if ( k == 4 ) then
         a = 10
      else
         a = z(k+1)
      end if
      print *, k, a
   end do
end


$ gfortran-7 -c z1.f90 -Wextra
$
$ gfortran-9-20181125 -c z1.f90 -Wextra
z1.f90:8:15:

    4 |    do k = 1, 4
      |              2
......
    8 |          a = z(k-1)
      |               1
Warning: Array reference at (1) out of bounds (0 < 1) in loop beginning at (2)
[-Wdo-subscript]

Reply via email to