// 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'}} | |
}; |