This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran 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: [F03] EXTENDS_TYPE_OF, CLASS IS and libgfortran


Hi Paul,

> The EXTENDS_TYPE_OF patch looks fine to me. ?Are you going to use the
> library call to do the runtime resolution of ?CLASS IS or will you
> write another library function to do that?

yes, the plan is to use this library function also for CLASS IS. This
is the nice thing about this way of doing it: You need only one
library function, which can be used for both things.

However, for this to work, one has to sort the CLASS IS cases
beforehand, so that they can be translated to

if (is_extension_of (...))
...
else if (is_extension_of (...))
...
else
...
end if

where extended types always have to appear before their parents (so
that you run into the most 'special' one when several cases match).


> I guess that you could add
> a flag that determines if gfortran_is_extension_of goes only to the
> parent or all the way up the ancestral tree.

Hm. What for? To use it also for SAME_TYPE_AS?  (which we currently do
inline...)


> To give you an update on dynamic dispatch: I am now past the blockage
> that the buglet in the revamping of the use of vtabs caused me. ?It
> was entirely self-inflicted because I was convinced that my work was
> causing the ICEs and never cleaned up and retested :-) ?I am now
> adding procedure pointer components for specific procedures that seem
> to be OK, baring adding the formal argument list for PASS bindings.
> The next step is to get the initialization to work and then I will
> cycle back to generic procedures and tidying up.

Sounds great. Once you have a working version, feel free to post it to
the list, so that we can commit it to the branch soon.

Cheers,
Janus


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