Home | History | Annotate | Download | only in SemaCXX

Lines Matching full:virtual

1 // RUN: %clang_cc1 -std=c++11 -fsyntax-only -Wnon-virtual-dtor -Wdelete-non-virtual-dtor -verify %s
90 struct X0 { virtual ~X0() throw(); };
93 // Make sure we instantiate operator deletes when building a virtual
103 virtual ~A() {}
125 struct S1 { // expected-warning {{has virtual functions but non-virtual destructor}}
126 virtual void m();
130 ~S2(); // expected-warning {{has virtual functions but non-virtual destructor}}
131 virtual void m();
134 struct S3 : public S1 { // expected-warning {{has virtual functions but non-virtual destructor}}
135 virtual void m();
138 struct S4 : public S2 { // expected-warning {{has virtual functions but non-virtual destructor}}
139 virtual void m();
143 virtual ~B();
144 virtual void m();
148 virtual void m();
152 virtual void m();
158 virtual void m();
164 virtual void m();
169 template<class T> class TS2 { // expected-warning {{'nonvirtualdtor::TS2<int>' has virtual functions but non-virtual destructor}}
170 virtual void m();
176 namespace dnvd { // delete-non-virtual-dtor warning
179 struct B { // expected-warning {{has virtual functions but non-virtual destructor}}
180 virtual void foo();
183 struct D: B {}; // expected-warning {{has virtual functions but non-virtual destructor}}
185 struct F final: B {}; // expected-warning {{has virtual functions but non-virtual destructor}}
188 virtual void foo();
189 virtual ~VB();
201 // expected-warning {{delete called on 'dnvd::B' that has virtual functions but non-virtual destructor}} \
202 // expected-warning {{delete called on 'dnvd::D' that has virtual functions but non-virtual destructor}}
212 ~simple_ptr2() { delete _ptr; } // expected-warning {{delete called on 'dnvd::B' that has virtual functions but non-virtual destructor}}
298 delete b; // expected-warning {{delete called on 'dnvd::B' that has virtual functions but non-virtual destructor}}
302 delete b; // expected-warning {{delete called on 'dnvd::B' that has virtual functions but non-virtual destructor}}
306 delete d; // expected-warning {{delete called on 'dnvd::D' that has virtual functions but non-virtual destructor}}
351 class C : virtual B { public: ~C() { } };