// RUN: %clang_cc1 -fsyntax-only -std=c++11 %s -verify -Winconsistent-missing-destructor-override class A { public: ~A() {} void virtual run() {} }; class B : public A { public: void run() override {} ~B() {} }; class C { public: virtual void run() {} virtual ~C() {} // expected-note 2{{overridden virtual function is here}} }; class D : public C { public: void run() override {} ~D() {} // expected-warning@-1 {{'~D' overrides a destructor but is not marked 'override'}} }; class E : public C { public: void run() override {} virtual ~E() {} // expected-warning@-1 {{'~E' overrides a destructor but is not marked 'override'}} };