Author: nico Date: Wed Dec 16 14:07:24 2015 New Revision: 255812 URL: http://llvm.org/viewvc/llvm-project?rev=255812&view=rev Log: Let -Wdelete-non-virtual-dtor mention final.
Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td cfe/trunk/test/SemaCXX/destructor.cpp Modified: cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td?rev=255812&r1=255811&r2=255812&view=diff ============================================================================== --- cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (original) +++ cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td Wed Dec 16 14:07:24 2015 @@ -5797,7 +5797,8 @@ def warn_non_virtual_dtor : Warning< "%0 has virtual functions but non-virtual destructor">, InGroup<NonVirtualDtor>, DefaultIgnore; def warn_delete_non_virtual_dtor : Warning< - "delete called on %0 that has virtual functions but non-virtual destructor">, + "delete called on non-final %0 that has virtual functions " + "but non-virtual destructor">, InGroup<DeleteNonVirtualDtor>, DefaultIgnore; def warn_delete_abstract_non_virtual_dtor : Warning< "delete called on %0 that is abstract but has non-virtual destructor">, Modified: cfe/trunk/test/SemaCXX/destructor.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/destructor.cpp?rev=255812&r1=255811&r2=255812&view=diff ============================================================================== --- cfe/trunk/test/SemaCXX/destructor.cpp (original) +++ cfe/trunk/test/SemaCXX/destructor.cpp Wed Dec 16 14:07:24 2015 @@ -217,8 +217,8 @@ class simple_ptr { public: simple_ptr(T* t): _ptr(t) {} ~simple_ptr() { delete _ptr; } // \ - // expected-warning {{delete called on 'dnvd::B' that has virtual functions but non-virtual destructor}} \ - // expected-warning {{delete called on 'dnvd::D' that has virtual functions but non-virtual destructor}} + // expected-warning {{delete called on non-final 'dnvd::B' that has virtual functions but non-virtual destructor}} \ + // expected-warning {{delete called on non-final 'dnvd::D' that has virtual functions but non-virtual destructor}} T& operator*() const { return *_ptr; } private: T* _ptr; @@ -228,7 +228,7 @@ template <typename T> class simple_ptr2 { public: simple_ptr2(T* t): _ptr(t) {} - ~simple_ptr2() { delete _ptr; } // expected-warning {{delete called on 'dnvd::B' that has virtual functions but non-virtual destructor}} + ~simple_ptr2() { delete _ptr; } // expected-warning {{delete called on non-final 'dnvd::B' that has virtual functions but non-virtual destructor}} T& operator*() const { return *_ptr; } private: T* _ptr; @@ -314,15 +314,15 @@ void nowarn0() { void warn0() { { B* b = new B(); - delete b; // expected-warning {{delete called on 'dnvd::B' that has virtual functions but non-virtual destructor}} + delete b; // expected-warning {{delete called on non-final 'dnvd::B' that has virtual functions but non-virtual destructor}} } { B* b = new D(); - delete b; // expected-warning {{delete called on 'dnvd::B' that has virtual functions but non-virtual destructor}} + delete b; // expected-warning {{delete called on non-final 'dnvd::B' that has virtual functions but non-virtual destructor}} } { D* d = new D(); - delete d; // expected-warning {{delete called on 'dnvd::D' that has virtual functions but non-virtual destructor}} + delete d; // expected-warning {{delete called on non-final 'dnvd::D' that has virtual functions but non-virtual destructor}} } } _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits