<div dir="ltr">Hi!<div><br></div><div>As proposed by @whisperity I'm posting here to ask about a strange situation we found in the following bug fix:</div><div><br></div><div><a href="https://reviews.llvm.org/D110614">https://reviews.llvm.org/D110614</a><br></div><div><br></div><div>We had a matcher to detect if a class has a public virtual destructor:</div><div><br></div><div><span style="color:rgb(0,0,0);font-family:monospace;font-size:13px;white-space:pre-wrap;background-color:rgba(71,87,120,0.1)">has(cxxDestructorDecl(isPublic(), isVirtual())),</span><br></div><div><br></div><div>However this didn't work for class templates, see details:</div><div><div><br></div><div><a href="https://reviews.llvm.org/D110614#3032760">https://reviews.llvm.org/D110614#3032760</a><br></div><div><br></div></div><div>The workaround was to create a custom matcher that seems to do the same thing as the original matcher, but it actually works for templates because it calls cxxDestructorDecl::isVirtual() (from Sema), which correctly propagates the virtual specifier from the base class.</div><div><br></div><div>Is this a concern, and should someone look into Sema/AST? (I'm unfortunately a n00b here). Or should we just merge the clang-tidy fix and move on?</div><div><br></div><div>Thanks!</div></div>