Clang tidy does not detect missing virtual destructor

Hi.
Consider following MWE:
reference.cpp:

#include <iostream>

class A {
    public:
        virtual void foo() = 0;
};

class B : public A {
    public:
        void foo() override {
            std::cout << "test";
        }
};

If I run clang-tidy on that, clang-tidy -checks="cppcoreguidelines-virtual-class-destructor" ./reference.cpp -- I’ll get expected output:

42 warnings generated.
/workspace/test/reference.cpp:3:7: warning: destructor of 'A' is public and non-virtual [cppcoreguidelines-virtual-class-destructor]
class A {
      ^
/workspace/test/reference.cpp:3:7: note: make it public and virtual
class A {
      ^
/workspace/test/reference.cpp:8:7: warning: destructor of 'B' is public and non-virtual [cppcoreguidelines-virtual-class-destructor]
class B : public A {
      ^
/workspace/test/reference.cpp:8:7: note: make it public and virtual
class B : public A {
      ^
Suppressed 40 warnings (40 in non-user code).

Let’s fix A:

#include <iostream>

class A {
    public:
        virtual void foo() = 0;
        virtual ~A() = default;
};

class B : public A {
    public:
        void foo() override {
            std::cout << "test";
        }
};

And run clang-tidy again:

40 warnings generated.
Suppressed 40 warnings (40 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.

So, A is fixed, but there’s still no virtual destructor in B. And no warning. How do I fix it?

PS:

clang-tidy --version
LLVM (http://llvm.org/):
  LLVM version 14.0.5
  Optimized build.
  Default target: x86_64-redhat-linux-gnu
  Host CPU: skylake

B does not need an explicit virtual destructor: it’s automatically virtual because it inherits from A and A has a virtual destructor. Thus no warning it’s emitted.