[Issue 21392] extern(C++) No support for virtual inheritance ABI

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Mar 25 16:30:56 UTC 2021


https://issues.dlang.org/show_bug.cgi?id=21392

Iain Buclaw <ibuclaw at gdcproject.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ibuclaw at gdcproject.org

--- Comment #2 from Iain Buclaw <ibuclaw at gdcproject.org> ---
(In reply to Nicholas Wilson from comment #1)
> is this the same issue as https://issues.dlang.org/show_bug.cgi?id=19192 ?
> it has just been fixed.

Unless that issue adds virtual inheritance to D, I'd say no.

This issue is more about ABI compatibility with thunks.  In C++ you have have
thunks adjust the `this' pointer for straightforward inheritance (same as D). 
However for virtual inheritance, thunks instead adjust the `__vptr', or both
the `this' and `__vptr' pointers within the same thunk.  D has no notion of
fixing the index into the vtable during a thunk call.

--


More information about the Digitalmars-d-bugs mailing list