jyknight wrote:

LLVM's intentional usage is either to reduce redundant vtable emission via 
ensuring there is a key method, OR, to intentionally create a useless vtable, 
in order to reduce redundant debuginfo emission (it can be emitted only in the 
vtable's TU when there's a vtable.) I expect both are likely to be rather 
unusual.

I'd say it's highly likely that _most_ code where this diagnostic triggers is 
simply because "virtual" was added to a function which simply doesn't need it, 
and the solution is to remove "virtual". This diagnostic can definitely be 
useful -- it likely indicates an issue in the code. I just don't think the 
issue it identifies is _that important_ as to warrant being on by default, such 
that we'd emit this even on a project with has not enabled any warning flags.

E.g. as comparison, is this really more important than `-Wall` diagnostics like 
"-Wdelete-non-virtual-dtor" ("warning: delete called on non-final <Foo> that 
has virtual functions but non-virtual destructor"), for example? I'd say 
definitely not.

https://github.com/llvm/llvm-project/pull/133265
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to