http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50517

--- Comment #2 from janus at gcc dot gnu.org 2011-09-26 08:09:09 UTC ---
Unfortunately, gfortran also does not reject it if the types actually differ:

program main
  type t
    integer :: i
  end type

  type u
    real :: r
  end type

  type(u), external :: ufunction

  call sub(ufunction) ! gfortran should emit an error message here

contains

  subroutine sub(tfunction)
    type(t), external :: tfunction
  end subroutine

end program 



When exchanging type(u)/type(t) for integer/real, the check works:

  call sub(ufunction) ! gfortran should emit an error message here
           1
Error: Interface mismatch in dummy procedure 'tfunction' at (1): Type/kind
mismatch in return value of 'ufunction'

Reply via email to