[Bug fortran/26779] New: Internal module procedure may not have private type dummy arguments
paul dot richard dot thomas at cea dot fr
gcc-bugzilla@gcc.gnu.org
Tue Mar 21 13:23:00 GMT 2006
This error is generated by the example, given at the end of Metcalf, Reid and
Cohen; pointer.f90. The following reduced testcase, illustartes it:
module test
public sub
type, private :: t
! type :: t
integer :: i
end type t
contains
subroutine sub (arg)
integer arg
type(t) :: root
call init(root, arg)
contains
subroutine init(ir, i)
integer i
type(t) :: ir
ir%i = i
end subroutine init
end subroutine sub
end module test
In file private.f90:11
call init(root, arg)
1
Error: 'ir' is of a PRIVATE type and cannot be a dummy argument of 'init',
which
is PUBLIC at (1)
Being an internal procedure, init is NOT public by 2.2.3.3 of the F95 standard.
It should have access to all the symbols of the host, therefore this error is
wrong on both levels; ir cannot be private to it, nor is init public!
Needless to say, a patch is on its way!
Paul
--
Summary: Internal module procedure may not have private type
dummy arguments
Product: gcc
Version: 4.2.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: paul dot richard dot thomas at cea dot fr
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26779
More information about the Gcc-bugs
mailing list