patch: fix odr of pure virtual operator()

Richard Smith richard at metafoo.co.uk
Wed Feb 6 20:49:24 PST 2013


LGTM!

On Wed, Feb 6, 2013 at 8:41 PM, Nick Lewycky <nlewycky at google.com> wrote:

> On 6 February 2013 16:17, Richard Smith <richard at metafoo.co.uk> wrote:
>
>> We seem to have the same issue in CreateOverloadedUnaryOp,
>> CreateOverloadedBinOp, CreateOverloadedArraySubscriptExpr, and
>> BuildOverloadedArrowExpr.
>
>
> Right you are.
>
> How about moving the call to MarkFunctionReferenced (and
>> DiagnoseUseOfDecl) into CreateFunctionRefExpr, and changing it to call
>> MarkDeclRefReferenced?
>>
>
> That works out perfectly. Updated patch attached!
>
> Nick
>
> On Tue, Feb 5, 2013 at 10:48 PM, Nick Lewycky <nlewycky at google.com> wrote:
>>
>>>  This patch changes Sema::BuildCallToObjectOfClassType to not mark a
>>> virtual operator() as odr used when called via functor syntax "(*obj)();".
>>> There's no way this syntax can be used to call the body of a pure virtual
>>> function. Please review!
>>>
>>> Nick
>>>
>>>
>>> _______________________________________________
>>> cfe-commits mailing list
>>> cfe-commits at cs.uiuc.edu
>>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130206/34de6268/attachment.html>


More information about the cfe-commits mailing list