// RUN: %check_clang_tidy %s fuchsia-virtual-inheritance %t class A { public: A(int value) : val(value) {} int do_A() { return val; } private: int val; }; class B : public virtual A { // CHECK-MESSAGES: [[@LINE-1]]:1: warning: direct virtual inheritance is disallowed [fuchsia-virtual-inheritance] // CHECK-NEXT: class B : public virtual A { public: B() : A(0) {} int do_B() { return 1 + do_A(); } }; class C : public virtual A { // CHECK-MESSAGES: [[@LINE-1]]:1: warning: direct virtual inheritance is disallowed [fuchsia-virtual-inheritance] // CHECK-NEXT: class C : public virtual A { public: C() : A(0) {} int do_C() { return 2 + do_A(); } }; class D : public B, public C { public: D(int value) : A(value), B(), C() {} int do_D() { return do_A() + do_B() + do_C(); } }; int main() { A *a = new A(0); B *b = new B(); C *c = new C(); D *d = new D(0); return 0; }