This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB 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]

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


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.


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