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