This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


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

Re: [RFA:] Fix for some .vtable_inherit inheritance bugs in the "old" ABI.


>>>>> "Hans-Peter" == Hans-Peter Nilsson <hp@bitrange.com> writes:

> I've tried to fix *some* bugs in the -fvtable-gc machinery.

OK.  Sorry this took so long.

> Sad to say, this does not work for the new ABI.  Neither did it before, to
> the same extent or slightly less.  There seems to be too large general
> differences for -fvtable-gc to work at present with the new ABI.  For
> example, a vt with the new ABI looks can "inherit" from several other
> vt:s on different inheritance paths, and the .vtable_entry offsets seem like
> they need an extra offset unknown at the call site.  See also
> <URL:http://gcc.gnu.org/ml/gcc/1999-08n/msg00905.html>.  I hope and
> believe this can be fixed, perhaps with the help of some extra .vtable_foo
> machinery.

> Perhaps using -fvtable-gc should be an error, or warned about for the new
> ABI?

I think it shouldn't be hard to make it work with the new ABI.  A class
still has a unique primary base from which it inherits the vtable, and the
entry for a particular function is still at a unique offset in the vtable.
The other offset you mention is only used for 'this' adjustment, and is
therefore irrelevant; the optimization is only trying to avoid pulling in
unneeded functions.

> Is there other documentation for the new ABI than the code and mailing
> list contents?  Something to add to readings.html?

The ia64 ABI website is currently

  http://reality.sgi.com/dehnert_engr/cxx/

though it may move soon.

Jason

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