[patch] Let -Wdelete-non-virtual-dtor mention that making the class final is a good fix too

David Blaikie via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 14 15:45:17 PST 2015


LGTM, please commit (if you like, if you want to wait for other feedback
that's OK too)

On Tue, Dec 15, 2015 at 2:15 AM, Nico Weber <thakis at chromium.org> wrote:

> On Sun, Dec 13, 2015 at 6:57 PM, David Blaikie <dblaikie at gmail.com> wrote:
>
>> (attachment missing)
>>
>
> (whoops. looks as expected though, here it is.)
>
> Cursory review based on description: Sounds reasonable to me. Would want
>> to check the C++98 behavior to ensure it is actually relevant/correct to
>> imply the possibility of 'final' being used to fix the issue.
>>
>
> test.cc:1:9: warning: 'final' keyword is a C++11 extension
> [-Wc++11-extensions]
> class C final {};
>         ^
>
>
>>
>> On Sun, Dec 13, 2015 at 1:37 AM, Nico Weber via cfe-commits <
>> cfe-commits at lists.llvm.org> wrote:
>>
>>> Hi,
>>>
>>> the attached patch changes
>>>
>>>   delete called on 'dnvd::B' that has virtual functions but non-virtual
>>> destructor
>>>
>>> to
>>>
>>>   delete called on non-final 'dnvd::B' that has virtual functions but
>>> non-virtual destructor
>>>
>>> I'm not sure if it should only do this for c++11 and newer – the new
>>> message is true in c++98 as well and I think we support final as an
>>> extension in c++98. So this patch unconditionally changes the warning text.
>>>
>>> Nico
>>>
>>> _______________________________________________
>>> cfe-commits mailing list
>>> cfe-commits at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20151215/90c0f2df/attachment.html>


More information about the cfe-commits mailing list