https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121204
Paul Thomas <pault at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |pault at gcc dot gnu.org
--- Comment #2 from Paul Thomas <pault at gcc dot gnu.org> ---
(In reply to Harald Anlauf from comment #1)
> Confirmed. All versions >= 7 affected.
Rich's comment about the explicit interface is confirmed by this compiling and
running, as intended:
module test_m
implicit none (type, external)
interface
module subroutine call_proc(proc)
interface
subroutine proc(a)
real, intent(in) :: a(:)
end subroutine proc
end interface
end subroutine call_proc
end interface
end module test_m
submodule (test_m) test_sm
implicit none (type, external)
contains
module subroutine call_proc (proc)
interface
subroutine proc(a)
real, intent(in) :: a(:)
end subroutine proc
end interface
call proc([1.,2.,.3])
end subroutine call_proc
end submodule test_sm
program test
use test_m
implicit none(type, external)
call call_proc(print_proc)
contains
subroutine print_proc(a)
real, intent(in) :: a(:)
if (SIZE(a, 1) /= 3) then
print '(a,i8,a)', 'size of a is ',size (a, 1), ' (should be 3)'
stop 1
endif
end subroutine print_proc
end program test