compilerplugins/clang/unnecessaryoverride.cxx |   18 ++++++++----------
 sw/inc/unotbl.hxx                             |    1 -
 sw/qa/extras/inc/swmodeltestbase.hxx          |    3 ---
 3 files changed, 8 insertions(+), 14 deletions(-)

New commits:
commit 6661bdb076f05427d28a3b069da7ea9ae957cd94
Author: Stephan Bergmann <[email protected]>
Date:   Mon Mar 13 17:24:09 2017 +0100

    Minor loplugin:unnecessaryoverride improvement
    
    Change-Id: I3afb31b642a47e767dda0614d223b6b7f22e5d54

diff --git a/compilerplugins/clang/unnecessaryoverride.cxx 
b/compilerplugins/clang/unnecessaryoverride.cxx
index 166ae65..5102faa 100644
--- a/compilerplugins/clang/unnecessaryoverride.cxx
+++ b/compilerplugins/clang/unnecessaryoverride.cxx
@@ -114,10 +114,6 @@ bool UnnecessaryOverride::VisitCXXMethodDecl(const 
CXXMethodDecl* methodDecl)
         // operator to change from being an obsolete feature to being a 
standard
         // feature.  That difference is not taken into account here.
         auto cls = methodDecl->getParent();
-        if (methodDecl->isVirtual() && cls->getNumBases() == 0)
-        {
-            return true;
-        }
         if (methodDecl->getAccess() != AS_public)
         {
             return true;
@@ -131,6 +127,7 @@ bool UnnecessaryOverride::VisitCXXMethodDecl(const 
CXXMethodDecl* methodDecl)
         // if it's virtual, but it has a base-class with a non-virtual 
destructor
         if (methodDecl->isVirtual())
         {
+            bool baseWithVirtualDtor = false;
             for (auto baseSpecifier = cls->bases_begin(); baseSpecifier != 
cls->bases_end(); ++baseSpecifier)
             {
                 const RecordType* baseRecordType = 
baseSpecifier->getType()->getAs<RecordType>();
@@ -138,15 +135,16 @@ bool UnnecessaryOverride::VisitCXXMethodDecl(const 
CXXMethodDecl* methodDecl)
                 {
                     const CXXRecordDecl* baseRecordDecl = 
dyn_cast<CXXRecordDecl>(baseRecordType->getDecl());
                     if (baseRecordDecl && baseRecordDecl->getDestructor()
-                        && !baseRecordDecl->getDestructor()->isVirtual())
+                        && baseRecordDecl->getDestructor()->isVirtual())
                     {
-                        return true;
+                        baseWithVirtualDtor = true;
+                        break;
                     }
                 }
-                else
-                {
-                    return true; // dependent base
-                }
+            }
+            if (!baseWithVirtualDtor)
+            {
+                return true;
             }
         }
         // corner case
diff --git a/sw/inc/unotbl.hxx b/sw/inc/unotbl.hxx
index aa18474..7b06cc1 100644
--- a/sw/inc/unotbl.hxx
+++ b/sw/inc/unotbl.hxx
@@ -245,7 +245,6 @@ public:
     SwUnoCursor&                  GetCursor();
     sw::UnoCursorPointer m_pUnoCursor;
     SwFrameFormat*       GetFrameFormat() const { return 
const_cast<SwFrameFormat*>(static_cast<const 
SwFrameFormat*>(GetRegisteredIn())); }
-    virtual ~SwXTextTableCursor() override { };
 };
 
 struct SwRangeDescriptor
diff --git a/sw/qa/extras/inc/swmodeltestbase.hxx 
b/sw/qa/extras/inc/swmodeltestbase.hxx
index 8bb35fc..c4cbeeb 100644
--- a/sw/qa/extras/inc/swmodeltestbase.hxx
+++ b/sw/qa/extras/inc/swmodeltestbase.hxx
@@ -192,9 +192,6 @@ public:
         maTempFile.EnableKillingFile();
     }
 
-    virtual ~SwModelTestBase() override
-    {}
-
     virtual void setUp() override
     {
         test::BootstrapFixture::setUp();
_______________________________________________
Libreoffice-commits mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to