This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug fortran/44957] generic procedure name not included in symbol table



------- 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]