Dear Janus,

On Mon, Nov 7, 2011 at 12:14 AM, Janus Weil <ja...@gcc.gnu.org> wrote:

> The patch actually consists of two parts:
> 1) The resolve.c part prevents the conversion to a PPC call via the
> _vptr (for functions and subroutines).

This is obviously OK

> 2) The class.c parts prevents adding the non-overridable TBP to the vtable.
>
> As noted by Tobias, the second part breaks the ABI, so we might
> consider deferring it until other ABI-breaking features will be
> implemented (cf. http://gcc.gnu.org/wiki/LibgfortranAbiCleanup). On
> the other hand, one could argue that the OOP ABI is still quite young
> and hasn't really stabilized yet (it was broken already from 4.5 to
> 4.6), so we might as well break it again. I know that there are a
> couple of real-world codes out there, which make use of gfortran's OOP
> features already, but I have a hard time estimating how many such
> projects exists, or how problematic an ABI breaking would be for them
> (user input welcome).

Do we need to exclude it from the _vtable?  I have to confess that,
although I tried, I could not think of any reason to exclude it.  On
the other hand, I could not see any great harm in retaining a pointer,
albeit a redundant one.

>
> So, the question is: Should I commit both parts, or only the resolve.c
> one for now? The patch was regtested on x86_64-unknown-linux-gnu.

In spite of the above remark, I think that you should commit both
parts.  Perhaps, until just before 4.7 release, a warning should be
triggered that says that pre-existing code containing non-overridable
procedures, should be recompiled before linking?

OK for trunk.

Thanks for the patch

Paul

Reply via email to