Re: [RFA] Patch for supportinf DW_TAG_module / FORTRAN modules

Jim Blandy
2002-08-16T19:51:36Z

Petr Sorfa <petrs@caldera.com> writes:
> > It seems to me like it would work, since a class establishes a scope
> > that behaves very much like a module. Isn't Class::member, where
> > member is a static thingy, very much like Module::member (or whatever
> > the Fortran syntax is)? We already have logic for resolving class
> > scopes; I don't immediately see why module scopes need to behave any
> > differently.
> I thought it did this. Can you point out where I'm going wrong?

Your patch is right, as far as I can see. In that paragraph I'm just
saying why I think the patch should work fine. In the next paragraph
I explain my reservations.

> > But I think a module should be represented by something that calls
> > itself a module, not a typedef. How will people feel reading a
> > comment explaining that a LOC_TYPEDEF for a type with TYPE_CODE_CLASS
> > is how we represent Fortran modules? I'm not sure that counts as good
> > maintenance.
> I originally introduced a TYPE_CODE_MODULE that was basically equivalent
> to a TYPE_CODE_CLASS, as much as TYPE_CODE_CLASS is really
> TYPE_CODE_STRUCT. I think I must have pulled it out for the patch. I can
> put it back in and make it equivalent to TYPE_CODE_CLASS.

If we're going to use a struct/class-like thingy to represent a
Fortran module, then we should at least add DECLARED_TYPE_MODULE (see
DECLARED_TYPE_CLASS, ... in gdbtypes.h).

> > Or maybe this is okay for now. When we provide better support for C++
> > namespaces, Fortran modules can become a variant of that, which feels
> > like a better fit.
> Yes. *Cough* maybe this patch can provide support for namespaces? ;o)

I'm not sure I really want the C++ `std' namespace represented as a
struct type.