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