This is the mail archive of the
fortran@gcc.gnu.org
mailing list for the GNU Fortran project.
Re: [Patch, fortran] PR78737 - [OOP] linking error with deferred, undefined user-defined derived-type I/O
- From: Paul Richard Thomas <paul dot richard dot thomas at gmail dot com>
- To: Janus Weil <janus at gcc dot gnu dot org>
- Cc: "fortran at gcc dot gnu dot org" <fortran at gcc dot gnu dot org>, gcc-patches <gcc-patches at gcc dot gnu dot org>, Damian Rouson <damian at sourceryinstitute dot org>
- Date: Tue, 13 Dec 2016 06:33:54 +0100
- Subject: Re: [Patch, fortran] PR78737 - [OOP] linking error with deferred, undefined user-defined derived-type I/O
- Authentication-results: sourceware.org; auth=none
- References: <CAGkQGiLsoE1AUv99QbAccGDu-OOiSsB31t2exFumQkPgchGeuA@mail.gmail.com> <CAKwh3qg=WX8iLG0E4iBVpixRuiwvckSwf8n8g8_dvnCsWBXemQ@mail.gmail.com> <CAKwh3qgGcE5HvbAqKBTgKN2bYAoHNxs4Zu8FoVqUNZ7_uyXb+w@mail.gmail.com>
Dear Janus,
I woke up in the middle of the night realising that not only are you
right about the need for dynamic dispatch but that my dtio_20.f90 must
already work.
Thanks for putting me right!
Paul
On 13 December 2016 at 00:30, Janus Weil <janus@gcc.gnu.org> wrote:
> Hi Paul, hi all,
>
> 2016-12-12 21:04 GMT+01:00 Janus Weil <janus@gcc.gnu.org>:
>> As commented several times in bugzilla, my feeling is that the
>> solution for this PR would be to utilize the vtable machinery, in
>> order to generate a truly polymorphic call to the DTIO procedure.
>
> in order to elaborate what I have in mind, I'm attaching a draft patch
> which implements polymorphic DTIO in the most straightforward manner I
> could come up with. I have not regtested it yet, but at least it
> removes the link failure on comment 0 and 6 in the PR and most
> importantly it generates the correct output for comment 18, which none
> of the previous attempts have accomplished.
>
> I'd be grateful for any comments, in particular whether I'm on the
> right track here or whether I'm misinterpreting the F03 standard in
> any way ...
>
> (Btw, it seems that Paul's dtio_20.f90 works already on current trunk,
> so it's not very well suited to test for the problem at hand.)
>
> Cheers,
> Janus
>
> PS: A quick check of the dtio_* tests shows ICEs on dtio_7.f90 and
> dtio_13.f90. I'll look into those tomorrow.
--
If you're walking down the right path and you're willing to keep
walking, eventually you'll make progress.
Barack Obama