<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Sep 12, 2012, at 4:24 AM, Richard Smith wrote:</div><blockquote type="cite">On Wed, Sep 12, 2012 at 2:08 AM, Andy Gibbs <span dir="ltr"><<a href="mailto:andyg1001@hotmail.co.uk" target="_blank">andyg1001@hotmail.co.uk</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto; ">
Hi,<br>
<br>
Attached are two patches to complement the recent work done by David Robins on __interface.<br>
<br>
The first, interface-fix.diff, corrects a codegen regression created by r163013 whereby all methods (including constructors) inside an __interface were being marked pure virtual and were causing the vtable generation to be invalid.<br>
</blockquote><div><br></div><div>Applying this to operators doesn't seem correct, since an __interface shouldn't have any operators in the first place.  Also, getOverloadedOperator doesn't check for conversion operators.</div></div></blockquote><div><br></div>Presumably it gets the implicit copy/move assignment operators, which should definitely not be virtual.</div><div><br></div><div>Oh, and could someone check whether __interface implicitly declares a virtual destructor?  That seems like a possibility.</div><div><br></div>John.</body></html>