1// RUN: %clang_cc1 -fsyntax-only -std=c++11 %s -verify -Winconsistent-missing-destructor-override 2 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