This is the mail archive of the gcc@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: --disable-new-gxx-abi


>>>>> "Joe" == Joe Buck <jbuck@racerx.synopsys.com> writes:

    Joe> Hmm.  But for the most common case -- single inheritance with
    Joe> no virtual base clases -- isn't the code sequence to do a
    Joe> virtual function call exactly the same with old and new ABIs?

Yes.

In fact, that's true for multiple inheritance, too.

The things that I know are different are:

  - The vtable is always located at offset zero in the object, rather
    that in some arbitrary place.  (That should make things easier!)

  - Casting to virtual bases is different, and that means that
    calling a virtual function defined in a virtual base is different.

  - The functions are numbered differently, so you have to compute the
    place to look into the vtable a little differently.

There may be other subtle issues, and I'm not a GDB expert by any
means, so how this stuff works there, I don't know...

--
Mark Mitchell                   mark@codesourcery.com
CodeSourcery, LLC               http://www.codesourcery.com

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