blob: 75e9ba8d141d9d54ea453c9bbd8f6d4b429f9f98 [file] [log] [blame]
Richard Trieu07c93382017-03-01 03:07:55 +00001// 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};