diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2017-03-13 14:22:08 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2017-03-13 14:22:08 +0100 |
commit | f2b4d849715b5dfcbaf422846327fd41d3576ba1 (patch) | |
tree | f298b1dc8ded2f0dff5097f0ba86d429eb118d2e /compilerplugins | |
parent | 6e4d3bad807a32371fe49f0a4a28ca0e5b0f6e70 (diff) |
Fix loplugin:unnecessaryoverride
(user-provided virtual dtor in class with dependent base)
Change-Id: I37b3cc3d32e76a0286ecc91f999920e3dfe706cc
Diffstat (limited to 'compilerplugins')
-rw-r--r-- | compilerplugins/clang/test/unnecessaryoverride-dtor.hxx | 4 | ||||
-rw-r--r-- | compilerplugins/clang/unnecessaryoverride.cxx | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/compilerplugins/clang/test/unnecessaryoverride-dtor.hxx b/compilerplugins/clang/test/unnecessaryoverride-dtor.hxx index 81733a92a3ab..e26024be1a28 100644 --- a/compilerplugins/clang/test/unnecessaryoverride-dtor.hxx +++ b/compilerplugins/clang/test/unnecessaryoverride-dtor.hxx @@ -46,6 +46,10 @@ struct MarkedInlineButNotDefined { inline ~MarkedInlineButNotDefined(); }; +template<typename T> struct TemplateBase: T { + virtual ~TemplateBase() {} +}; + #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/compilerplugins/clang/unnecessaryoverride.cxx b/compilerplugins/clang/unnecessaryoverride.cxx index 8cf811b58415..166ae654f99f 100644 --- a/compilerplugins/clang/unnecessaryoverride.cxx +++ b/compilerplugins/clang/unnecessaryoverride.cxx @@ -143,6 +143,10 @@ bool UnnecessaryOverride::VisitCXXMethodDecl(const CXXMethodDecl* methodDecl) return true; } } + else + { + return true; // dependent base + } } } // corner case |