34 lines · cpp
1// RUN: %clang_cc1 -fsyntax-only -std=c++11 %s -verify -Winconsistent-missing-destructor-override2 3class A {4 public:5 ~A() {}6 void virtual run() {}7};8 9class B : public A {10 public:11 void run() override {}12 ~B() {}13};14 15class C {16 public:17 virtual void run() {}18 virtual ~C() {} // expected-note 2{{overridden virtual function is here}}19};20 21class D : public C {22 public:23 void run() override {}24 ~D() {}25 // expected-warning@-1 {{'~D' overrides a destructor but is not marked 'override'}}26};27 28class E : public C {29 public:30 void run() override {}31 virtual ~E() {}32 // expected-warning@-1 {{'~E' overrides a destructor but is not marked 'override'}}33};34