[Bug fortran/44957] generic procedure name not included in symbol table
kargl at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Thu Jul 15 17:48:00 GMT 2010
------- Comment #1 from kargl at gcc dot gnu dot org 2010-07-15 17:48 -------
(In reply to comment #0)
> When compiling a generic procedure, the generic name is not entered in the
> symbol table, which then causes subsequent 'use' statements to fail.
>
> Example:
>
> in m_die.F90 we declare:
>
> module m_die
> use m_mpif90, only : MP_perr
> implicit none
> private ! except
>
> public :: die ! signal an exception
>
> interface die; module procedure &
> die0_, & ! die(where)
> die1_, & ! die(where,message)
> die2_, & ! die(where,proc,ier)
> die4_ ! die(where,mesg1,ival1,mesg2,ival2)
> end interface
>
> etc...
> Which compiles fine.
> In other files we try:
>
> subroutine IndexBin1_(n,indx,keys,bins,lcs,lns)
> use m_die, only : die
>
> ...and the compiler complains:
>
> use m_die, only : die
> 1
> Error: Symbol 'die' referenced at (1) not found in module 'm_die'
>
> A quick check of the symbol table confirms the actual procedures are there, but
> the generic name is missing:
> 000009ba T ___m_die_MOD_die0_
> 00000953 T ___m_die_MOD_die1_
> 000008e5 T ___m_die_MOD_die2_
> 00000862 T ___m_die_MOD_die4_
>
>
> but no 'die'
There is insufficient code here to try to reproduce
your problem. Please attach a small self-contained
example.
It may also be advantageous to update your version
of gfortran to 4.4.4, 4.5.0, or trunk.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44957
More information about the Gcc-bugs
mailing list