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
  • [Bug fortran/121204] Explicit i... pault at gcc dot gnu.org via Gcc-bugs

Reply via email to