r174242 - This patch makes "&Cls::purevfn" not an odr use. This isn't what the standard

Nick Lewycky nlewycky at google.com
Fri Feb 1 17:16:42 PST 2013


On 1 February 2013 16:44, John McCall <rjmccall at apple.com> wrote:

> On Feb 1, 2013, at 4:30 PM, Richard Smith <richard at metafoo.co.uk> wrote:
> > On Fri, Feb 1, 2013 at 4:25 PM, Nick Lewycky <nicholas at mxc.ca> wrote:
> >> Author: nicholas
> >> Date: Fri Feb  1 18:25:55 2013
> >> New Revision: 174242
> >>
> >> URL: http://llvm.org/viewvc/llvm-project?rev=174242&view=rev
> >> Log:
> >> This patch makes "&Cls::purevfn" not an odr use. This isn't what the
> standard
> >> says, but that's a defect (to be filed). "Cls::purevfn()" is still an
> odr use.
>
> Why is this specific to *pure* virtual functions?  Shouldn't it be
> *any* virtual function?
>
> I mean, non-pure virtual functions are universally ODR-used anyway,
> but there's no plausible implementation model in which &Cls::vfn
> specifically requires a reference to the function.
>

I think you're right. I had been focusing on pure functions, as the
standard calls out pure function specifically in the odr section.

Do you want me to change the "if (Method->isPure())" to "if
(Method->isVirtual)" then? It seems odd to have comments talking about pure
members then suddenly testing for virtual instead.

Nick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20130201/155c3669/attachment.html>


More information about the cfe-commits mailing list