pcc added a comment. > An amendment to the Itanium ABI requiring that a conforming program may not
> adjust a virtual table pointer loaded from an object to another virtual table > in the same virtual table group would seem to be all that would be required > to guarantee that this scheme will be ABI compatible with future compilers, > and I'd be happy to drive such an amendment. Actually, now that I've taken a closer look at the Itanium ABI, I think we're already covered, as the ABI specifies the calling sequence for virtual calls (https://mentorembedded.github.io/cxx-abi/abi.html#vcall.caller). As mentioned in that section, it would seem that the caller has to pass a pointer to the chosen subobject as the `this` pointer. This would seem to require that the caller choose a virtual function pointer appropriate to the chosen subobject, rather than some other subobject in another virtual table group (such a virtual function would by definition require a different this adjustment). https://reviews.llvm.org/D22296 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits