[Bug fortran/86472] allocatable array, bound-procedure, submodule
pault at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Sat Jul 28 09:49:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86472
Paul Thomas <pault at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Assignee|unassigned at gcc dot gnu.org |pault at gcc dot gnu.org
--- Comment #2 from Paul Thomas <pault at gcc dot gnu.org> ---
(In reply to Jim Feng from comment #0)
> Module M1
> implicit none
>
> type :: mytype
> contains
> procedure :: myfunc1
> end type
>
> interface
>
> module subroutine myfunc1(self, a)
> class(mytype), intent(in) :: self
> real, intent(in) :: a(:)
> real, allocatable :: t(:)
> end subroutine myfunc1
> end interface
> End Module M1
> ------------------------------------------
> submodule(M1) M2
> contains
>
> module procedure myfunc1
> ! real, allocatable :: t(:)
> allocate(t, source=a)
> x=10.0
> print *,t, a, x
> end procedure myfunc1
> end submodule M2
>
> =========================================
>
> submodule M2 showed compilation error (Error: Allocate-object is neither a
> data pointer nor an allocatable variable) without re-declare variable t.
> Also un-declared variable x gives no error.
Yes indeed with respect to the declaration of 't'. However, since the submodule
is a separate compilation unit, I believe that it also must contain an
'implicit none' to pick up the undeclared variable 'x'. I will check the
standard on this.
Thanks
Paul
More information about the Gcc-bugs
mailing list