<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">On Jul 30, 2013, at 9:57 AM, Timur Iskhodzhanov <<a href="mailto:timurrrr@google.com">timurrrr@google.com</a>> wrote:<br><div><blockquote type="cite"><div style="font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">2013/7/30 John McCall <<a href="mailto:rjmccall@apple.com">rjmccall@apple.com</a>>:<br><blockquote type="cite">How so?  Itanium’s v-tables are still logically broken up into separate<br>components, such that an access through any one v-table pointer only<br>ever accesses a particular component.<br></blockquote><br>Yes<br><br><blockquote type="cite">You could very easily change<br>Itanium to allocate all the v-tables in separate symbols without any need<br>to change the code for virtual calls.  It’s just that Itanium is trying to<br>optimize the number of separate symbols required.<br></blockquote><br>Yes<br><br>But still it does affect the vcall mechanism in some sense - for<br>example, the covariant-return overrider might require you to use a<br>vbase's vptr to call a method defined in the derived object, which is<br>different from the Itanium ABI. Not sure if it belongs to that clause<br>though.</div></blockquote></div><br><div>Not really, and as we’ve discussed that’s really just an ABI bug. :)</div><div><br></div><div>That bug’ll be fun to diagnose.  Are you planning to work on it?</div><div><br></div><div>John.</div></body></html>