make overrridevirtual a shared plugin

Change-Id: Ied3b772bdd54cb0e8d6214e7a51866364523b83b
Reviewed-on: https://gerrit.libreoffice.org/75742
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
diff --git a/compilerplugins/clang/overridevirtual.cxx b/compilerplugins/clang/overridevirtual.cxx
index 9b31035..8dd29ab 100644
--- a/compilerplugins/clang/overridevirtual.cxx
+++ b/compilerplugins/clang/overridevirtual.cxx
@@ -6,6 +6,7 @@
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */
#ifndef LO_CLANG_SHARED_PLUGINS

#include <algorithm>
#include <cassert>
@@ -26,6 +27,7 @@ public:
    explicit OverrideVirtual(loplugin::InstantiationData const & data):
        FilteringRewritePlugin(data) {}

    virtual bool preRun() override;
    virtual void run() override;

    bool VisitCXXMethodDecl(CXXMethodDecl const * decl);
@@ -34,13 +36,15 @@ private:
    std::set<SourceLocation> insertions_;
};

void OverrideVirtual::run() {
    if (compiler.getLangOpts().CPlusPlus
bool OverrideVirtual::preRun() {
    return compiler.getLangOpts().CPlusPlus
        && compiler.getPreprocessor().getIdentifierInfo(
            "LIBO_INTERNAL_ONLY")->hasMacroDefinition())
    {
            "LIBO_INTERNAL_ONLY")->hasMacroDefinition();
}

void OverrideVirtual::run() {
    if (preRun())
        TraverseDecl(compiler.getASTContext().getTranslationUnitDecl());
    }
}
bool OverrideVirtual::VisitCXXMethodDecl(CXXMethodDecl const * decl) {
    // As a heuristic, ignore declarations where the name is spelled out in an
@@ -161,8 +165,10 @@ bool OverrideVirtual::VisitCXXMethodDecl(CXXMethodDecl const * decl) {
    return true;
}

loplugin::Plugin::Registration<OverrideVirtual> X("overridevirtual", true);
loplugin::Plugin::Registration<OverrideVirtual> overridevirtual("overridevirtual");

}
} // namespace

#endif // LO_CLANG_SHARED_PLUGINS

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/compilerplugins/clang/sharedvisitor/sharedvisitor.cxx b/compilerplugins/clang/sharedvisitor/sharedvisitor.cxx
index ed07569..f3fe66c 100644
--- a/compilerplugins/clang/sharedvisitor/sharedvisitor.cxx
+++ b/compilerplugins/clang/sharedvisitor/sharedvisitor.cxx
@@ -25,6 +25,7 @@
#include "../inlinevisible.cxx"
#include "../loopvartoosmall.cxx"
#include "../overrideparam.cxx"
#include "../overridevirtual.cxx"
#include "../pointerbool.cxx"
#include "../privatebase.cxx"
#include "../rangedforcopy.cxx"
@@ -82,6 +83,7 @@ public:
        , inlineVisible( nullptr )
        , loopVarTooSmall( nullptr )
        , overrideParam( nullptr )
        , overrideVirtual( nullptr )
        , pointerBool( nullptr )
        , privateBase( nullptr )
        , rangedForCopy( nullptr )
@@ -140,6 +142,8 @@ public:
            loopVarTooSmall = nullptr;
        if( overrideParam && !overrideParam->preRun())
            overrideParam = nullptr;
        if( overrideVirtual && !overrideVirtual->preRun())
            overrideVirtual = nullptr;
        if( pointerBool && !pointerBool->preRun())
            pointerBool = nullptr;
        if( privateBase && !privateBase->preRun())
@@ -226,6 +230,8 @@ public:
            loopVarTooSmall->postRun();
        if( overrideParam )
            overrideParam->postRun();
        if( overrideVirtual )
            overrideVirtual->postRun();
        if( pointerBool )
            pointerBool->postRun();
        if( privateBase )
@@ -318,6 +324,8 @@ public:
            loopVarTooSmall = static_cast< LoopVarTooSmall* >( plugin );
        else if( strcmp( name, "overrideparam" ) == 0 )
            overrideParam = static_cast< OverrideParam* >( plugin );
        else if( strcmp( name, "overridevirtual" ) == 0 )
            overrideVirtual = static_cast< OverrideVirtual* >( plugin );
        else if( strcmp( name, "pointerbool" ) == 0 )
            pointerBool = static_cast< PointerBool* >( plugin );
        else if( strcmp( name, "privatebase" ) == 0 )
@@ -549,6 +557,11 @@ public:
            if( !overrideParam->VisitCXXMethodDecl( arg ))
                overrideParam = nullptr;
        }
        if( overrideVirtual != nullptr )
        {
            if( !overrideVirtual->VisitCXXMethodDecl( arg ))
                overrideVirtual = nullptr;
        }
        if( typedefParam != nullptr )
        {
            if( !typedefParam->VisitCXXMethodDecl( arg ))
@@ -1130,6 +1143,7 @@ private:
            || inlineVisible != nullptr
            || loopVarTooSmall != nullptr
            || overrideParam != nullptr
            || overrideVirtual != nullptr
            || pointerBool != nullptr
            || privateBase != nullptr
            || rangedForCopy != nullptr
@@ -1172,6 +1186,7 @@ private:
    InlineVisible* inlineVisible;
    LoopVarTooSmall* loopVarTooSmall;
    OverrideParam* overrideParam;
    OverrideVirtual* overrideVirtual;
    PointerBool* pointerBool;
    PrivateBase* privateBase;
    RangedForCopy* rangedForCopy;