carlosgalvezp added a comment.

In D126891#3555456 <https://reviews.llvm.org/D126891#3555456>, @steakhal wrote:

> In D126891#3554039 <https://reviews.llvm.org/D126891#3554039>, @carlosgalvezp 
> wrote:
>
>> Hmm, `MostDerived` **does** have a public virtual destructor in your example 
>> already - if the base class destructor is virtual, the child class 
>> destructor is virtual. In that sense the check should not warn.
>>
>> Seems like there's some deeper problem in the check?
>
> Not quite. None of the destructors are virtual in the example. In fact, the 
> `MostDerived` has a //public// and //non-virtual// destructor.

Doesn't `Base` have a virtual destructor? As per the standard 
<https://timsong-cpp.github.io/cppwp/n4140/class.dtor#9>:

> If a class has a base class with a virtual destructor, its destructor 
> (whether user- or implicitly-declared) is virtual.

To clarify: I'm not opposed to the patch, I'm just trying to understand if the 
AST is indeed implementing the Standard correctly and classifying the `Derived` 
destructor as virtual.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126891/new/

https://reviews.llvm.org/D126891

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to