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.