[Patch, fortran] PR24409 - ICE on module name vs dummy argument name

Steve Kargl sgk@troutmask.apl.washington.edu
Mon Nov 7 23:41:00 GMT 2005


On Tue, Nov 08, 2005 at 12:04:24AM +0100, Paul Thomas wrote:
> 
> >PS: Someday, we should document the gfortran and libgfortran
> >   internals on the wiki.  AFAIK, Paul T is the only person
> >   with a grasp on how modules work. :(
> > 
> >
> I think that you are right. Maybe I should write something on module.c, 
> whilst I still have a grasp on it! It is a very slippery thing.
> 
> It is my belief that module.c is more complicated, at the front end, 
> that it needs to be. Also, for complicated codes, it can be very slow 
> because it reads the .mod file and reconstructs the contribution to the 
> symtree each time a module is used. As a medium-ish term project, I 
> intend to make a list of module namespaces, into which the .mod files 
> are unconditionally read... once. The use should then be made from those 
> namespaces. The interior is very clever and merits some investigation.
> 

Well, I've been looking at PR 15976

module sd
  integer :: i(n)
end module sd

This is illegal.  In resolve_symbol, I can determine i is an automatic
array, but I have not been able to determine that i is in a module
as oppose to say a function

function sd(n)
  integer sd
  integer :: i(n)
end function fd

which is legal.  I assume I need to walk some module namespace, but
every pointer that I've looked at is NULL. :(

I'll keep plodding away.


-- 
Steve



More information about the Fortran mailing list