I just opened PR 119812 for what appears to be a regression in the latest gfortran.
The following code causes bogus errors when compiled with the latest trunk using the -Wall option: module bugMod type :: c integer :: a end type c type, extends(c) :: c1 end type c1 type, extends(c) :: c2 end type c2 type :: s type(c1) :: c1_ type(c2) :: c2_ contains procedure :: map => map_ end type s contains subroutine mf(self) implicit none class(c), intent(inout) :: self self%a=1 return end subroutine mf subroutine map_(self,mapFunction) implicit none class(s), intent(inout) :: self procedure(mf), pointer :: mapFunction call mapFunction(self%c1_) call mapFunction(self%c2_) return end subroutine map_ end module bugMod > gfortran -v Using built-in specs. COLLECT_GCC=gfortran COLLECT_LTO_WRAPPER=/carnegie/nobackup/users/abenson/upstream/libexec/gcc/ x86_64-pc-linux-gnu/15.0.1/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../configure --prefix=/carnegie/nobackup/users/abenson/upstream --disable-multilib --enable-checking=release --enable-host-shared --with-pic --enable-languages=c,c++,fortran,jit,lto Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 15.0.1 20250410 (experimental) (GCC) > gfortran -c bugFP.F90 -Wall bugFP.F90:36:30: 35 | call mapFunction(self%c1_) | 2 36 | call mapFunction(self%c2_) | 1 Warning: Different argument lists in external dummy subroutine mapfunction at (1) and (2) [-Wexternal-argument-mismatch] bugFP.F90:36:21: 35 | call mapFunction(self%c1_) | 2 36 | call mapFunction(self%c2_) | 1 Error: Type mismatch between actual argument at (1) and actual argument at (2) (TYPE(c2)/TYPE(c1)). The `mapFunction` procedure pointer uses subroutine `mf` as its interface, which accepts a `class(c)` argument, such that either of the child types (`c1` and `c2`) should be acceptable. The error goes away if compiled without -Wall, or if the calls to `mapFunction` are replaced with calls to `mf` directly. This doesn't occur with gfortran 13.3.0 so appears to be a regression. -Andrew -- * Andrew Benson: https://abensonca.github.io * Galacticus: https://github.com/galacticusorg/galacticus