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

            Bug ID: 91557
           Summary: [7/8/9/10 Regression] Bogus warning about unused dummy
                    argument _formal_*
           Product: gcc
           Version: 10.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: fortran
          Assignee: unassigned at gcc dot gnu.org
          Reporter: gs...@t-online.de
  Target Milestone: ---

There is an _old_ issue with -Wall (-Wunused-dummy-argument)
and _legal_ code with contained procedures.
It does not depend on specific types.
Starting with z0.f90 and refactoring it to z1.f90 :


$ cat z0.f90
program p
   integer :: a, b
   a = 1
   call g (a, b)
end
subroutine g (a, b)
   integer :: a, b
   integer :: x, y
   call h (x, y)
   if ( a > 0 )   y = y - 1
   b = y - x + 1
end

$ gfortran-10-20190825 -c z0.f90 -Wall
$


$ cat z1.f90
program p
   integer :: a, b
   a = 1
   call g
contains
   subroutine g
      integer :: x, y
      call h (x, y)
      if ( a > 0 )   y = y - 1
      b = y - x + 1
   end
end


$ gfortran-6 -c z1.f90 -Wall
$
$ gfortran-7 -c z1.f90 -Wall
z1.f90:8:19:

       call h (x, y)
                   1
Warning: Unused dummy argument '_formal_0' at (1) [-Wunused-dummy-argument]
z1.f90:8:19:

       call h (x, y)
                   1
Warning: Unused dummy argument '_formal_1' at (1) [-Wunused-dummy-argument]


$ gfortran-10-20190825 -c z1.f90 -Wall
z1.f90:9:19:

    9 |       call h (x, y)
      |                   1
Warning: Unused dummy argument '_formal_2' at (1) [-Wunused-dummy-argument]
z1.f90:9:19:

    9 |       call h (x, y)
      |                   1
Warning: Unused dummy argument '_formal_3' at (1) [-Wunused-dummy-argument]


The numbering (0/1->2/3) has changed between 20190818 and 20190825.
Might be one root cause of pr91556.

Reply via email to