[Libreoffice-commits] core.git: 2 commits - avmedia/inc avmedia/source basctl/source basic/source chart2/source compilerplugins/clang cui/source desktop/inc desktop/source extensions/source filter/source framework/inc framework/source include/sfx2 include/svtools include/svx reportdesign/source sc/inc sc/source sd/inc sd/source sfx2/source svtools/source svx/source sw/inc sw/source unotools/source vcl/workben

Stephan Bergmann sbergman at redhat.com
Fri May 8 10:16:01 PDT 2015


 avmedia/inc/mediacontrol.hxx                        |    2 +-
 avmedia/source/framework/mediacontrol.cxx           |    2 +-
 basctl/source/basicide/baside3.cxx                  |    3 ++-
 basctl/source/basicide/iderdll.cxx                  |    2 +-
 basctl/source/basicide/iderdll2.hxx                 |    2 +-
 basctl/source/inc/baside3.hxx                       |    2 +-
 basic/source/classes/sbxmod.cxx                     |    4 ++--
 chart2/source/controller/dialogs/dlg_DataEditor.cxx |    2 +-
 chart2/source/controller/dialogs/tp_Scale.cxx       |    3 ++-
 chart2/source/controller/dialogs/tp_Scale.hxx       |    2 +-
 chart2/source/controller/inc/dlg_DataEditor.hxx     |    2 +-
 compilerplugins/clang/staticmethods.cxx             |   18 ++++++++----------
 cui/source/dialogs/hlmailtp.cxx                     |    2 +-
 cui/source/dialogs/scriptdlg.cxx                    |    3 ++-
 cui/source/inc/chardlg.hxx                          |    2 +-
 cui/source/inc/cuitabarea.hxx                       |    2 +-
 cui/source/inc/hlmailtp.hxx                         |    3 ++-
 cui/source/inc/paragrph.hxx                         |    2 +-
 cui/source/inc/scriptdlg.hxx                        |    2 +-
 cui/source/inc/treeopt.hxx                          |    2 +-
 cui/source/options/optinet2.cxx                     |    6 +++---
 cui/source/options/optinet2.hxx                     |    6 +++---
 cui/source/options/treeopt.cxx                      |    3 ++-
 cui/source/tabpages/chardlg.cxx                     |    2 +-
 cui/source/tabpages/paragrph.cxx                    |    2 +-
 cui/source/tabpages/tparea.cxx                      |    3 ++-
 desktop/inc/app.hxx                                 |    4 ++--
 desktop/source/app/app.cxx                          |    4 ++--
 extensions/source/plugin/unx/npwrap.cxx             |    1 +
 filter/source/pdf/impdialog.cxx                     |    2 +-
 filter/source/pdf/impdialog.hxx                     |    2 +-
 filter/source/xsltdialog/xmlfiltertabdialog.cxx     |    7 ++++---
 filter/source/xsltdialog/xmlfiltertabdialog.hxx     |    2 +-
 framework/inc/services/layoutmanager.hxx            |    2 +-
 framework/source/layoutmanager/layoutmanager.cxx    |    2 +-
 include/sfx2/dinfdlg.hxx                            |    4 ++--
 include/svtools/addresstemplate.hxx                 |    2 +-
 include/svx/float3d.hxx                             |    2 +-
 include/svx/fmobjfac.hxx                            |    2 +-
 include/svx/galmisc.hxx                             |    2 +-
 include/svx/objfac3d.hxx                            |    2 +-
 reportdesign/source/ui/inc/dlgedfac.hxx             |    2 +-
 reportdesign/source/ui/report/dlgedfac.cxx          |    3 ++-
 sc/inc/externalrefmgr.hxx                           |    2 +-
 sc/inc/userdat.hxx                                  |    2 +-
 sc/source/core/data/userdat.cxx                     |    3 ++-
 sc/source/ui/condformat/condformatdlg.cxx           |    2 +-
 sc/source/ui/docshell/externalrefmgr.cxx            |    2 +-
 sc/source/ui/inc/acredlin.hxx                       |    2 +-
 sc/source/ui/inc/condformatdlg.hxx                  |    2 +-
 sc/source/ui/inc/opredlin.hxx                       |    2 +-
 sc/source/ui/inc/scuitphfedit.hxx                   |    2 +-
 sc/source/ui/inc/viewdata.hxx                       |    4 ++--
 sc/source/ui/miscdlgs/acredlin.cxx                  |    2 +-
 sc/source/ui/optdlg/calcoptionsdlg.cxx              |    3 ++-
 sc/source/ui/optdlg/calcoptionsdlg.hxx              |    2 +-
 sc/source/ui/optdlg/opredlin.cxx                    |    2 +-
 sc/source/ui/pagedlg/scuitphfedit.cxx               |    2 +-
 sc/source/ui/view/viewdata.cxx                      |    2 +-
 sd/inc/sdmod.hxx                                    |    2 +-
 sd/source/ui/annotations/annotationwindow.cxx       |    2 +-
 sd/source/ui/annotations/annotationwindow.hxx       |    2 +-
 sd/source/ui/app/sdmod1.cxx                         |    2 +-
 sfx2/source/dialog/dinfdlg.cxx                      |    7 ++++---
 svtools/source/contnr/imivctl.hxx                   |    2 +-
 svtools/source/contnr/imivctl1.cxx                  |    2 +-
 svtools/source/dialogs/addresstemplate.cxx          |    3 ++-
 svx/source/engine3d/float3d.cxx                     |    2 +-
 svx/source/engine3d/objfac3d.cxx                    |    3 ++-
 svx/source/form/fmobjfac.cxx                        |    3 ++-
 svx/source/gallery2/galmisc.cxx                     |    3 ++-
 sw/inc/dobjfac.hxx                                  |    2 +-
 sw/source/core/draw/dobjfac.cxx                     |    3 ++-
 sw/source/ui/dialog/uiregionsw.cxx                  |    3 ++-
 sw/source/ui/dialog/wordcountdialog.cxx             |    2 +-
 sw/source/ui/table/tabledlg.cxx                     |    3 ++-
 sw/source/uibase/app/apphdl.cxx                     |    7 +++++--
 sw/source/uibase/dbui/dbui.cxx                      |    2 +-
 sw/source/uibase/envelp/syncbtn.cxx                 |    2 +-
 sw/source/uibase/inc/dbui.hxx                       |    2 +-
 sw/source/uibase/inc/regionsw.hxx                   |    2 +-
 sw/source/uibase/inc/syncbtn.hxx                    |    2 +-
 sw/source/uibase/inc/wordcountdialog.hxx            |    2 +-
 sw/source/uibase/inc/workctrl.hxx                   |    2 +-
 sw/source/uibase/ribbar/workctrl.cxx                |    2 +-
 sw/source/uibase/table/tablepg.hxx                  |    2 +-
 unotools/source/ucbhelper/ucblockbytes.cxx          |    2 +-
 unotools/source/ucbhelper/ucblockbytes.hxx          |    2 +-
 vcl/workben/svpclient.cxx                           |    4 ++--
 89 files changed, 132 insertions(+), 112 deletions(-)

New commits:
commit 5eb6bd4db7fb3d43672c386ac9cde58e981c8aa2
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Fri May 8 19:11:38 2015 +0200

    lopluign:staticmethods: Handle DECL_LINK
    
    Change-Id: Ib27854a8470f3ff5b208cb949a7bd02f2a86c969

diff --git a/avmedia/inc/mediacontrol.hxx b/avmedia/inc/mediacontrol.hxx
index 37b5738..0348d29 100644
--- a/avmedia/inc/mediacontrol.hxx
+++ b/avmedia/inc/mediacontrol.hxx
@@ -82,7 +82,7 @@ private:
                         DECL_LINK( implTimeHdl, Slider* );
                         DECL_LINK( implTimeEndHdl, Slider* );
                         DECL_LINK( implVolumeHdl, Slider* );
-                        DECL_LINK(implVolumeEndHdl, void *);
+                        DECL_STATIC_LINK(MediaControl, implVolumeEndHdl, void *);
                         DECL_LINK_TYPED( implSelectHdl, ToolBox*, void );
                         DECL_LINK( implZoomSelectHdl, ListBox* );
                         DECL_LINK_TYPED(implTimeoutHdl, Idle *, void);
diff --git a/avmedia/source/framework/mediacontrol.cxx b/avmedia/source/framework/mediacontrol.cxx
index dbc6b73..01ca132 100644
--- a/avmedia/source/framework/mediacontrol.cxx
+++ b/avmedia/source/framework/mediacontrol.cxx
@@ -479,7 +479,7 @@ IMPL_LINK( MediaControl, implVolumeHdl, Slider*, p )
 
 
 
-IMPL_LINK_NOARG(MediaControl, implVolumeEndHdl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(MediaControl, implVolumeEndHdl)
 {
     return 0;
 }
diff --git a/basctl/source/basicide/baside3.cxx b/basctl/source/basicide/baside3.cxx
index afaa5e2..b31b426 100644
--- a/basctl/source/basicide/baside3.cxx
+++ b/basctl/source/basicide/baside3.cxx
@@ -227,7 +227,8 @@ void DialogWindow::Command( const CommandEvent& rCEvt )
 
 
 
-IMPL_LINK( DialogWindow, NotifyUndoActionHdl, SfxUndoAction *, pUndoAction )
+IMPL_STATIC_LINK_NOINSTANCE(
+    DialogWindow, NotifyUndoActionHdl, SfxUndoAction *, pUndoAction )
 {
     // #i120515# pUndoAction needs to be deleted, this hand over is an ownership
     // change. As long as it does not get added to the undo manager, it needs at
diff --git a/basctl/source/basicide/iderdll.cxx b/basctl/source/basicide/iderdll.cxx
index 959ed58..3615523 100644
--- a/basctl/source/basicide/iderdll.cxx
+++ b/basctl/source/basicide/iderdll.cxx
@@ -174,7 +174,7 @@ void ExtraData::SetSearchItem (const SvxSearchItem& rItem)
     pSearchItem.reset(static_cast<SvxSearchItem*>(rItem.Clone()));
 }
 
-IMPL_LINK(ExtraData, GlobalBasicBreakHdl, StarBASIC *, pBasic )
+IMPL_STATIC_LINK_NOINSTANCE(ExtraData, GlobalBasicBreakHdl, StarBASIC *, pBasic)
 {
     long nRet = 0;
     if (Shell* pShell = GetShell())
diff --git a/basctl/source/basicide/iderdll2.hxx b/basctl/source/basicide/iderdll2.hxx
index 8c1ec2e..6359d17 100644
--- a/basctl/source/basicide/iderdll2.hxx
+++ b/basctl/source/basicide/iderdll2.hxx
@@ -50,7 +50,7 @@ private:
     bool            bShellInCriticalSection;
 
 protected:
-    DECL_LINK( GlobalBasicBreakHdl, StarBASIC * );
+    DECL_STATIC_LINK( ExtraData, GlobalBasicBreakHdl, StarBASIC * );
 
 public:
     ExtraData();
diff --git a/basctl/source/inc/baside3.hxx b/basctl/source/inc/baside3.hxx
index 2f229c2..7654ef3 100644
--- a/basctl/source/inc/baside3.hxx
+++ b/basctl/source/inc/baside3.hxx
@@ -72,7 +72,7 @@ protected:
     virtual void        Command( const CommandEvent& rCEvt ) SAL_OVERRIDE;
     virtual void        LoseFocus() SAL_OVERRIDE;
 
-    DECL_LINK( NotifyUndoActionHdl, SfxUndoAction * );
+    DECL_STATIC_LINK( DialogWindow, NotifyUndoActionHdl, SfxUndoAction * );
     virtual void        DoInit() SAL_OVERRIDE;
     virtual void        DoScroll( ScrollBar* pCurScrollBar ) SAL_OVERRIDE;
     virtual void        DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
diff --git a/basic/source/classes/sbxmod.cxx b/basic/source/classes/sbxmod.cxx
index 96b6fa4..4a19ffd 100644
--- a/basic/source/classes/sbxmod.cxx
+++ b/basic/source/classes/sbxmod.cxx
@@ -471,10 +471,10 @@ public:
         uno::Reference< frame::XDesktop2 > xDeskTop = frame::Desktop::create( comphelper::getProcessComponentContext() );
         xDeskTop->terminate();
     }
-    DECL_LINK( OnAsyncQuit, void* );
+    DECL_STATIC_LINK( AsyncQuitHandler, OnAsyncQuit, void* );
 };
 
-IMPL_LINK( AsyncQuitHandler, OnAsyncQuit, void*, /*pNull*/ )
+IMPL_STATIC_LINK_NOINSTANCE_NOARG( AsyncQuitHandler, OnAsyncQuit )
 {
     QuitApplication();
     return 0L;
diff --git a/chart2/source/controller/dialogs/dlg_DataEditor.cxx b/chart2/source/controller/dialogs/dlg_DataEditor.cxx
index 683a4c9..4ccae7b 100644
--- a/chart2/source/controller/dialogs/dlg_DataEditor.cxx
+++ b/chart2/source/controller/dialogs/dlg_DataEditor.cxx
@@ -180,7 +180,7 @@ IMPL_LINK_NOARG(DataEditor, MiscHdl)
     return 0L;
 }
 
-IMPL_LINK_NOARG(DataEditor, CellModified)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(DataEditor, CellModified)
 {
     return 0;
 }
diff --git a/chart2/source/controller/dialogs/tp_Scale.cxx b/chart2/source/controller/dialogs/tp_Scale.cxx
index cca20e8..b62fec7 100644
--- a/chart2/source/controller/dialogs/tp_Scale.cxx
+++ b/chart2/source/controller/dialogs/tp_Scale.cxx
@@ -157,7 +157,8 @@ void ScaleTabPage::dispose()
     SfxTabPage::dispose();
 }
 
-IMPL_LINK( ScaleTabPage, FmtFieldModifiedHdl, FormattedField*, pFmtFied )
+IMPL_STATIC_LINK_NOINSTANCE(
+    ScaleTabPage, FmtFieldModifiedHdl, FormattedField*, pFmtFied )
 {
     if( pFmtFied )
         pFmtFied->SetDefaultValue( pFmtFied->GetValue() );
diff --git a/chart2/source/controller/dialogs/tp_Scale.hxx b/chart2/source/controller/dialogs/tp_Scale.hxx
index 2f5a66c..959e831 100644
--- a/chart2/source/controller/dialogs/tp_Scale.hxx
+++ b/chart2/source/controller/dialogs/tp_Scale.hxx
@@ -101,7 +101,7 @@ private:
 
     DECL_LINK( SelectAxisTypeHdl, void* );
     DECL_LINK( EnableValueHdl, CheckBox* );
-    DECL_LINK( FmtFieldModifiedHdl, FormattedField* );
+    DECL_STATIC_LINK( ScaleTabPage, FmtFieldModifiedHdl, FormattedField* );
 
     /** shows a warning window due to an invalid input.
 
diff --git a/chart2/source/controller/inc/dlg_DataEditor.hxx b/chart2/source/controller/inc/dlg_DataEditor.hxx
index a32c6d8..82d7500 100644
--- a/chart2/source/controller/inc/dlg_DataEditor.hxx
+++ b/chart2/source/controller/inc/dlg_DataEditor.hxx
@@ -80,7 +80,7 @@ private:
     /// this is called if MiscOptions change, esp. High-Contrast mode
     DECL_LINK( MiscHdl, void* );
     /// is called when the contents of the edit cell changes
-    DECL_LINK( CellModified, void* );
+    DECL_STATIC_LINK( DataEditor, CellModified, void* );
     /// is called when the width of any column in the edit browsebox has changed
     DECL_LINK( BrowserColumnResized, void* );
     /// is called when the browser view was scrolled, @todo: only call on horizontal scroll
diff --git a/compilerplugins/clang/staticmethods.cxx b/compilerplugins/clang/staticmethods.cxx
index 71e3b6a..036662c 100644
--- a/compilerplugins/clang/staticmethods.cxx
+++ b/compilerplugins/clang/staticmethods.cxx
@@ -85,15 +85,6 @@ bool StaticMethods::TraverseCXXMethodDecl(const CXXMethodDecl * pCXXMethodDecl)
         return true;
     }
 
-    // leave these alone for now, it is possible to fix them, but I don't understand how
-    SourceLocation canonicalLoc = pCXXMethodDecl->getCanonicalDecl()->getLocStart();
-    if (compat::isMacroBodyExpansion(compiler, canonicalLoc) ) {
-        StringRef name { Lexer::getImmediateMacroName(
-                canonicalLoc, compiler.getSourceManager(), compiler.getLangOpts()) };
-        if (name == "DECL_LINK") {
-            return true;
-        }
-    }
     // the CppUnit stuff uses macros and methods that can't be changed
     if (isDerivedFromTestFixture(pCXXMethodDecl->getParent())) {
         return true;
diff --git a/cui/source/dialogs/hlmailtp.cxx b/cui/source/dialogs/hlmailtp.cxx
index 1033619..ce07304 100644
--- a/cui/source/dialogs/hlmailtp.cxx
+++ b/cui/source/dialogs/hlmailtp.cxx
@@ -244,7 +244,7 @@ IMPL_LINK_NOARG(SvxHyperlinkMailTp, ModifiedReceiverHdl_Impl)
 |*
 |************************************************************************/
 
-IMPL_LINK_NOARG(SvxHyperlinkMailTp, ClickAdrBookHdl_Impl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(SvxHyperlinkMailTp, ClickAdrBookHdl_Impl)
 {
     SfxViewFrame* pViewFrame = SfxViewFrame::Current();
     if( pViewFrame )
diff --git a/cui/source/dialogs/scriptdlg.cxx b/cui/source/dialogs/scriptdlg.cxx
index 858cc35..215278a 100644
--- a/cui/source/dialogs/scriptdlg.cxx
+++ b/cui/source/dialogs/scriptdlg.cxx
@@ -1485,7 +1485,8 @@ short SvxScriptErrorDialog::Execute()
     return 0;
 }
 
-IMPL_LINK( SvxScriptErrorDialog, ShowDialog, OUString*, pMessage )
+IMPL_STATIC_LINK_NOINSTANCE(
+    SvxScriptErrorDialog, ShowDialog, OUString*, pMessage )
 {
     OUString message;
 
diff --git a/cui/source/inc/chardlg.hxx b/cui/source/inc/chardlg.hxx
index 4431ef6..9611af4 100644
--- a/cui/source/inc/chardlg.hxx
+++ b/cui/source/inc/chardlg.hxx
@@ -304,7 +304,7 @@ private:
     DECL_LINK(          FitToLineHdl_Impl, CheckBox* );
     DECL_LINK(KerningSelectHdl_Impl, void *);
     DECL_LINK(KerningModifyHdl_Impl, void *);
-    DECL_LINK(PairKerningHdl_Impl, void *);
+    DECL_STATIC_LINK(SvxCharPositionPage, PairKerningHdl_Impl, void *);
     DECL_LINK(          LoseFocusHdl_Impl, MetricField* );
     DECL_LINK(ScaleWidthModifyHdl_Impl, void *);
 
diff --git a/cui/source/inc/cuitabarea.hxx b/cui/source/inc/cuitabarea.hxx
index 871b5be..73ec463 100644
--- a/cui/source/inc/cuitabarea.hxx
+++ b/cui/source/inc/cuitabarea.hxx
@@ -148,7 +148,7 @@ class SvxTransparenceTabPage : public SvxTabPage
     DECL_LINK(ClickTransLinearHdl_Impl, void * );
     DECL_LINK(ClickTransGradientHdl_Impl, void * );
     DECL_LINK(ModifyTransparentHdl_Impl, void*);
-    DECL_LINK(ChangeTrgrTypeHdl_Impl, void*);
+    DECL_STATIC_LINK(SvxTransparenceTabPage, ChangeTrgrTypeHdl_Impl, void*);
     DECL_LINK(ModifiedTrgrHdl_Impl, void*);
 
     void ActivateLinear(bool bActivate);
diff --git a/cui/source/inc/hlmailtp.hxx b/cui/source/inc/hlmailtp.hxx
index 705a9a3..6c56027 100644
--- a/cui/source/inc/hlmailtp.hxx
+++ b/cui/source/inc/hlmailtp.hxx
@@ -35,7 +35,8 @@ private:
     VclPtr<FixedText>           m_pFtSubject;
     VclPtr<Edit>                m_pEdSubject;
 
-    DECL_LINK (ClickAdrBookHdl_Impl  , void * ); ///< Button : Address book
+    DECL_STATIC_LINK(SvxHyperlinkMailTp, ClickAdrBookHdl_Impl, void *);
+        ///< Button : Address book
     DECL_LINK (ModifiedReceiverHdl_Impl, void * ); ///< Combobox "receiver" modified
 
     void    SetScheme(const OUString& rScheme);
diff --git a/cui/source/inc/paragrph.hxx b/cui/source/inc/paragrph.hxx
index 80b2536..2dda774 100644
--- a/cui/source/inc/paragrph.hxx
+++ b/cui/source/inc/paragrph.hxx
@@ -272,7 +272,7 @@ class SvxAsianTabPage : public SfxTabPage
 
     SvxAsianTabPage( vcl::Window* pParent, const SfxItemSet& rSet );
 
-    DECL_LINK( ClickHdl_Impl, CheckBox* );
+    DECL_STATIC_LINK( SvxAsianTabPage, ClickHdl_Impl, CheckBox* );
 
 public:
     virtual ~SvxAsianTabPage();
diff --git a/cui/source/inc/scriptdlg.hxx b/cui/source/inc/scriptdlg.hxx
index 94f8881..5abe86f 100644
--- a/cui/source/inc/scriptdlg.hxx
+++ b/cui/source/inc/scriptdlg.hxx
@@ -190,7 +190,7 @@ private:
 
     OUString m_sMessage;
 
-    DECL_LINK( ShowDialog, OUString* );
+    DECL_STATIC_LINK( SvxScriptErrorDialog, ShowDialog, OUString* );
 
 public:
 
diff --git a/cui/source/inc/treeopt.hxx b/cui/source/inc/treeopt.hxx
index bc85919..86f7af9 100644
--- a/cui/source/inc/treeopt.hxx
+++ b/cui/source/inc/treeopt.hxx
@@ -184,7 +184,7 @@ private:
     void            InsertNodes( const VectorOfNodes& rNodeList );
 
 protected:
-    DECL_LINK(ExpandedHdl_Impl, SvTreeListBox* );
+    DECL_STATIC_LINK(OfaTreeOptionsDialog, ExpandedHdl_Impl, SvTreeListBox* );
     DECL_LINK(ShowPageHdl_Impl, void *);
     DECL_LINK(BackHdl_Impl, void *);
     DECL_LINK(OKHdl_Impl, void *);
diff --git a/cui/source/options/optinet2.cxx b/cui/source/options/optinet2.cxx
index ad14915..32bcd13 100644
--- a/cui/source/options/optinet2.cxx
+++ b/cui/source/options/optinet2.cxx
@@ -548,7 +548,7 @@ IMPL_LINK( SvxProxyTabPage, ProxyHdl_Impl, ListBox *, pBox )
 
 
 
-IMPL_LINK( SvxProxyTabPage, LoseFocusHdl_Impl, Edit *, pEdit )
+IMPL_STATIC_LINK_NOINSTANCE( SvxProxyTabPage, LoseFocusHdl_Impl, Edit *, pEdit )
 {
     OUString aValue = pEdit->GetText();
 
@@ -736,7 +736,7 @@ IMPL_LINK_NOARG(SvxSecurityTabPage, SavePasswordHdl)
     return 0;
 }
 
-IMPL_LINK_NOARG(SvxSecurityTabPage, MasterPasswordHdl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(SvxSecurityTabPage, MasterPasswordHdl)
 {
     try
     {
@@ -843,7 +843,7 @@ IMPL_LINK_NOARG(SvxSecurityTabPage, TSAURLsPBHdl)
     return 0;
 }
 
-IMPL_LINK_NOARG(SvxSecurityTabPage, MacroSecPBHdl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(SvxSecurityTabPage, MacroSecPBHdl)
 {
     try
     {
diff --git a/cui/source/options/optinet2.hxx b/cui/source/options/optinet2.hxx
index d1b4362..15403a1 100644
--- a/cui/source/options/optinet2.hxx
+++ b/cui/source/options/optinet2.hxx
@@ -96,7 +96,7 @@ private:
     void RestoreConfigDefaults_Impl();
 
     DECL_LINK( ProxyHdl_Impl, ListBox * );
-    DECL_LINK( LoseFocusHdl_Impl, Edit * );
+    DECL_STATIC_LINK( SvxProxyTabPage, LoseFocusHdl_Impl, Edit * );
 
 public:
     SvxProxyTabPage( vcl::Window* pParent, const SfxItemSet& rSet );
@@ -157,10 +157,10 @@ private:
 
     DECL_LINK(SecurityOptionsHdl, void *);
     DECL_LINK(SavePasswordHdl, void* );
-    DECL_LINK(MasterPasswordHdl, void *);
+    DECL_STATIC_LINK(SvxSecurityTabPage, MasterPasswordHdl, void *);
     DECL_LINK(MasterPasswordCBHdl, void* );
     DECL_LINK(ShowPasswordsHdl, void *);
-    DECL_LINK(MacroSecPBHdl, void* );
+    DECL_STATIC_LINK(SvxSecurityTabPage, MacroSecPBHdl, void* );
     DECL_LINK(CertPathPBHdl, void* );
     DECL_LINK(TSAURLsPBHdl, void* );
 
diff --git a/cui/source/options/treeopt.cxx b/cui/source/options/treeopt.cxx
index 3768084..7644fbf 100644
--- a/cui/source/options/treeopt.cxx
+++ b/cui/source/options/treeopt.cxx
@@ -728,7 +728,8 @@ IMPL_LINK_NOARG(OfaTreeOptionsDialog, OKHdl_Impl)
 }
 
 // an opened group shall be completely visible
-IMPL_LINK(OfaTreeOptionsDialog, ExpandedHdl_Impl, SvTreeListBox*, pBox )
+IMPL_STATIC_LINK_NOINSTANCE(
+    OfaTreeOptionsDialog, ExpandedHdl_Impl, SvTreeListBox*, pBox )
 {
     pBox->Update();
     pBox->InitStartEntry();
diff --git a/cui/source/tabpages/chardlg.cxx b/cui/source/tabpages/chardlg.cxx
index 412c6d5..97b6a95 100644
--- a/cui/source/tabpages/chardlg.cxx
+++ b/cui/source/tabpages/chardlg.cxx
@@ -2905,7 +2905,7 @@ IMPL_LINK_NOARG(SvxCharPositionPage, KerningModifyHdl_Impl)
 
 
 
-IMPL_LINK_NOARG(SvxCharPositionPage, PairKerningHdl_Impl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(SvxCharPositionPage, PairKerningHdl_Impl)
 {
     return 0;
 }
diff --git a/cui/source/tabpages/paragrph.cxx b/cui/source/tabpages/paragrph.cxx
index 72c80d8..46c204a 100644
--- a/cui/source/tabpages/paragrph.cxx
+++ b/cui/source/tabpages/paragrph.cxx
@@ -2262,7 +2262,7 @@ void SvxAsianTabPage::Reset( const SfxItemSet* rSet )
     lcl_SetBox(*rSet, SID_ATTR_PARA_SCRIPTSPACE, *m_pScriptSpaceCB );
 }
 
-IMPL_LINK( SvxAsianTabPage, ClickHdl_Impl, CheckBox*, pBox )
+IMPL_STATIC_LINK_NOINSTANCE( SvxAsianTabPage, ClickHdl_Impl, CheckBox*, pBox )
 {
     pBox->EnableTriState( false );
     return 0;
diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx
index a0a7abb..2e344e9 100644
--- a/cui/source/tabpages/tparea.cxx
+++ b/cui/source/tabpages/tparea.cxx
@@ -202,7 +202,8 @@ void SvxTransparenceTabPage::ActivateGradient(bool bActivate)
     }
 }
 
-IMPL_LINK_NOARG(SvxTransparenceTabPage, ChangeTrgrTypeHdl_Impl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(
+    SvxTransparenceTabPage, ChangeTrgrTypeHdl_Impl)
 {
     return 0L;
 }
diff --git a/desktop/inc/app.hxx b/desktop/inc/app.hxx
index 9882987..5c6b708 100644
--- a/desktop/inc/app.hxx
+++ b/desktop/inc/app.hxx
@@ -84,7 +84,7 @@ class Desktop : public Application
         static void             OpenClients();
         static void             OpenDefault();
 
-        DECL_LINK( EnableAcceptors_Impl, void*);
+        DECL_STATIC_LINK( Desktop, EnableAcceptors_Impl, void*);
 
         static void             HandleAppEvent( const ApplicationEvent& rAppEvent );
         static ResMgr*          GetDesktopResManager();
@@ -153,7 +153,7 @@ class Desktop : public Application
         void                    CloseSplashScreen();
 
         static void             EnableOleAutomation();
-                                DECL_LINK( ImplInitFilterHdl, ConvertData* );
+        DECL_STATIC_LINK( Desktop, ImplInitFilterHdl, ConvertData* );
         DECL_STATIC_LINK_TYPED( Desktop, AsyncInitFirstRun, Timer*, void );
         /** checks if the office is run the first time
             <p>If so, <method>DoFirstRunInitializations</method> is called (asynchronously and delayed) and the
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index 971483d..b1adc63 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -1714,7 +1714,7 @@ int Desktop::doShutdown()
     return EXIT_SUCCESS;
 }
 
-IMPL_LINK( Desktop, ImplInitFilterHdl, ConvertData*, pData )
+IMPL_STATIC_LINK_NOINSTANCE( Desktop, ImplInitFilterHdl, ConvertData*, pData )
 {
     return GraphicFilter::GetGraphicFilter().GetFilterCallback().Call( pData );
 }
@@ -1907,7 +1907,7 @@ IMPL_LINK_NOARG(Desktop, OpenClients_Impl)
 }
 
 // enable acceptos
-IMPL_LINK_NOARG(Desktop, EnableAcceptors_Impl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(Desktop, EnableAcceptors_Impl)
 {
     enableAcceptors();
     return 0;
diff --git a/extensions/source/plugin/unx/npwrap.cxx b/extensions/source/plugin/unx/npwrap.cxx
index 59eb027..3c7d9d7 100644
--- a/extensions/source/plugin/unx/npwrap.cxx
+++ b/extensions/source/plugin/unx/npwrap.cxx
@@ -113,6 +113,7 @@ extern "C"
 
 IMPL_LINK( PluginConnector, NewMessageHdl, Mediator*, /*pMediator*/ )
 {
+    (void) this; // loplugin:staticmethods
     SAL_INFO("extensions.plugin", "new message handler");
     bool bSuccess = (4 == write(wakeup_fd[1], "cccc", 4));
     SAL_WARN_IF(!bSuccess, "extensions.plugin", "short write");
diff --git a/filter/source/pdf/impdialog.cxx b/filter/source/pdf/impdialog.cxx
index af2e7e7..ed1a5b4 100644
--- a/filter/source/pdf/impdialog.cxx
+++ b/filter/source/pdf/impdialog.cxx
@@ -1737,7 +1737,7 @@ IMPL_LINK_NOARG( ImpPDFTabSigningPage, ClickmaPbSignCertClear )
 }
 
 
-IMPL_LINK_NOARG( ImpPDFTabSigningPage, SelectLBSignTSA )
+IMPL_STATIC_LINK_NOINSTANCE_NOARG( ImpPDFTabSigningPage, SelectLBSignTSA )
 {
     return 0;
 }
diff --git a/filter/source/pdf/impdialog.hxx b/filter/source/pdf/impdialog.hxx
index dc2f9d3..e828721 100644
--- a/filter/source/pdf/impdialog.hxx
+++ b/filter/source/pdf/impdialog.hxx
@@ -432,7 +432,7 @@ class ImpPDFTabSigningPage : public SfxTabPage
 
     DECL_LINK( ClickmaPbSignCertSelect, void* );
     DECL_LINK( ClickmaPbSignCertClear, void* );
-    DECL_LINK( SelectLBSignTSA, void* );
+    DECL_STATIC_LINK( ImpPDFTabSigningPage, SelectLBSignTSA, void* );
 
 public:
     ImpPDFTabSigningPage( vcl::Window* pParent,
diff --git a/filter/source/xsltdialog/xmlfiltertabdialog.cxx b/filter/source/xsltdialog/xmlfiltertabdialog.cxx
index 46abda7..ed40020 100644
--- a/filter/source/xsltdialog/xmlfiltertabdialog.cxx
+++ b/filter/source/xsltdialog/xmlfiltertabdialog.cxx
@@ -68,7 +68,7 @@ XMLFilterTabDialog::XMLFilterTabDialog(vcl::Window *pParent, ResMgr& rResMgr,
     m_nXSLTPageId = m_pTabCtrl->GetPageId("transformation");
     m_pTabCtrl->SetTabPage(m_nXSLTPageId, mpXSLTPage);
 
-    ActivatePageHdl(m_pTabCtrl);
+    ActivatePageHdl(nullptr, m_pTabCtrl);
 }
 
 
@@ -250,7 +250,7 @@ bool XMLFilterTabDialog::onOk()
     if( 0 != nErrorId )
     {
         m_pTabCtrl->SetCurPageId((sal_uInt16)nErrorPage);
-        ActivatePageHdl(m_pTabCtrl);
+        ActivatePageHdl(nullptr, m_pTabCtrl);
 
         ResId aResId( nErrorId, mrResMgr );
         OUString aMessage( aResId );
@@ -294,7 +294,8 @@ IMPL_LINK_NOARG(XMLFilterTabDialog, OkHdl)
 
 
 
-IMPL_LINK( XMLFilterTabDialog, ActivatePageHdl, TabControl *, pTabCtrl )
+IMPL_STATIC_LINK_NOINSTANCE(
+    XMLFilterTabDialog, ActivatePageHdl, TabControl *, pTabCtrl )
 {
     const sal_uInt16 nId = pTabCtrl->GetCurPageId();
     TabPage* pTabPage = pTabCtrl->GetTabPage( nId );
diff --git a/filter/source/xsltdialog/xmlfiltertabdialog.hxx b/filter/source/xsltdialog/xmlfiltertabdialog.hxx
index cd83543..47a2e67 100644
--- a/filter/source/xsltdialog/xmlfiltertabdialog.hxx
+++ b/filter/source/xsltdialog/xmlfiltertabdialog.hxx
@@ -45,7 +45,7 @@ public:
 private:
     com::sun::star::uno::Reference< com::sun::star::uno::XComponentContext > mxContext;
 
-    DECL_LINK( ActivatePageHdl, TabControl * );
+    DECL_STATIC_LINK( XMLFilterTabDialog, ActivatePageHdl, TabControl * );
     DECL_STATIC_LINK_TYPED( XMLFilterTabDialog, DeactivatePageHdl, TabControl *, bool );
     DECL_LINK(OkHdl, void *);
 
diff --git a/framework/inc/services/layoutmanager.hxx b/framework/inc/services/layoutmanager.hxx
index 078120e..2fe1b25 100644
--- a/framework/inc/services/layoutmanager.hxx
+++ b/framework/inc/services/layoutmanager.hxx
@@ -256,7 +256,7 @@ namespace framework
             void    implts_notifyListeners(short nEvent, const css::uno::Any& rInfoParam);
 
             DECL_LINK( OptionsChanged, void* );
-            DECL_LINK( SettingsChanged, void* );
+            DECL_STATIC_LINK( LayoutManager, SettingsChanged, void* );
 
             //  OPropertySetHelper
 
diff --git a/framework/source/layoutmanager/layoutmanager.cxx b/framework/source/layoutmanager/layoutmanager.cxx
index 7bcbccd..1088347 100644
--- a/framework/source/layoutmanager/layoutmanager.cxx
+++ b/framework/source/layoutmanager/layoutmanager.cxx
@@ -2620,7 +2620,7 @@ IMPL_LINK_NOARG(LayoutManager, MenuBarClose)
     return 0;
 }
 
-IMPL_LINK_NOARG(LayoutManager, SettingsChanged)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(LayoutManager, SettingsChanged)
 {
     return 1;
 }
diff --git a/include/sfx2/dinfdlg.hxx b/include/sfx2/dinfdlg.hxx
index 86e0036..3bb88d9 100644
--- a/include/sfx2/dinfdlg.hxx
+++ b/include/sfx2/dinfdlg.hxx
@@ -210,7 +210,7 @@ private:
 
     DECL_LINK(DeleteHdl, void *);
     DECL_LINK(SignatureHdl, void *);
-    DECL_LINK(ChangePassHdl, void *);
+    DECL_STATIC_LINK(SfxDocumentPage, ChangePassHdl, void *);
     void                ImplUpdateSignatures();
     void                ImplCheckPasswordState();
 
@@ -440,7 +440,7 @@ private:
     Idle                                m_aBoxLoseFocusIdle;
     Link<>                              m_aRemovedHdl;
 
-    DECL_LINK(  TypeHdl, CustomPropertiesTypeBox* );
+    DECL_STATIC_LINK( CustomPropertiesWindow, TypeHdl, CustomPropertiesTypeBox* );
     DECL_LINK(  RemoveHdl, CustomPropertiesRemoveButton* );
     DECL_LINK(  EditLoseFocusHdl, CustomPropertiesEdit* );
     DECL_LINK(  BoxLoseFocusHdl, CustomPropertiesTypeBox* );
diff --git a/include/svtools/addresstemplate.hxx b/include/svtools/addresstemplate.hxx
index 28bc7ed..33bbeb6 100644
--- a/include/svtools/addresstemplate.hxx
+++ b/include/svtools/addresstemplate.hxx
@@ -129,7 +129,7 @@ namespace svt
         DECL_LINK(OnFieldScroll, ScrollBar*);
         DECL_LINK(OnFieldSelect, ListBox*);
         DECL_LINK(OnAdministrateDatasources, void*);
-        DECL_LINK(OnComboGetFocus, ComboBox*);
+        DECL_STATIC_LINK(AddressBookSourceDialog, OnComboGetFocus, ComboBox*);
         DECL_LINK(OnComboLoseFocus, ComboBox*);
         DECL_LINK(OnComboSelect, ComboBox*);
         DECL_LINK(OnOkClicked, void*);
diff --git a/include/svx/float3d.hxx b/include/svx/float3d.hxx
index 04c1662..1a7a5f5 100644
--- a/include/svx/float3d.hxx
+++ b/include/svx/float3d.hxx
@@ -198,7 +198,7 @@ private:
     DECL_LINK( ModifyHdl, void * );
     void ClickLight(PushButton &rBtn);
 
-    DECL_LINK( ChangeLightCallbackHdl, void * );
+    DECL_STATIC_LINK( Svx3DWin, ChangeLightCallbackHdl, void * );
     DECL_LINK( ChangeSelectionCallbackHdl, void * );
 
     SVX_DLLPRIVATE void         Construct();
diff --git a/include/svx/fmobjfac.hxx b/include/svx/fmobjfac.hxx
index b75e623..81b8801 100644
--- a/include/svx/fmobjfac.hxx
+++ b/include/svx/fmobjfac.hxx
@@ -31,7 +31,7 @@ public:
     FmFormObjFactory();
     ~FmFormObjFactory();
 
-    DECL_LINK(MakeObject, SdrObjFactory*);
+    DECL_STATIC_LINK(FmFormObjFactory, MakeObject, SdrObjFactory*);
 };
 
 #endif          // _FM_FMOBJFAC_HXX
diff --git a/include/svx/galmisc.hxx b/include/svx/galmisc.hxx
index 729bdd2..dce7dfa 100644
--- a/include/svx/galmisc.hxx
+++ b/include/svx/galmisc.hxx
@@ -132,7 +132,7 @@ public:
         SgaUserDataFactory() { SdrObjFactory::InsertMakeUserDataHdl( USERDATA_HDL() ); }
         ~SgaUserDataFactory() { SdrObjFactory::RemoveMakeUserDataHdl( USERDATA_HDL() ); }
 
-        DECL_LINK( MakeUserData, SdrObjFactory* );
+        DECL_STATIC_LINK( SgaUserDataFactory, MakeUserData, SdrObjFactory* );
 };
 
 class GraphicFilter;
diff --git a/include/svx/objfac3d.hxx b/include/svx/objfac3d.hxx
index 3588e20..734dc52 100644
--- a/include/svx/objfac3d.hxx
+++ b/include/svx/objfac3d.hxx
@@ -40,7 +40,7 @@ public:
     E3dObjFactory();
     ~E3dObjFactory();
 
-    DECL_LINK(MakeObject, SdrObjFactory*);
+    DECL_STATIC_LINK(E3dObjFactory, MakeObject, SdrObjFactory*);
 };
 
 
diff --git a/reportdesign/source/ui/inc/dlgedfac.hxx b/reportdesign/source/ui/inc/dlgedfac.hxx
index 864dd36..d9e6067 100644
--- a/reportdesign/source/ui/inc/dlgedfac.hxx
+++ b/reportdesign/source/ui/inc/dlgedfac.hxx
@@ -35,7 +35,7 @@ public:
     DlgEdFactory();
     ~DlgEdFactory();
 
-    DECL_LINK( MakeObject, SdrObjFactory * );
+    DECL_STATIC_LINK( DlgEdFactory, MakeObject, SdrObjFactory * );
 };
 }
 #endif // INCLUDED_REPORTDESIGN_SOURCE_UI_INC_DLGEDFAC_HXX
diff --git a/reportdesign/source/ui/report/dlgedfac.cxx b/reportdesign/source/ui/report/dlgedfac.cxx
index a538ec0..3915da7 100644
--- a/reportdesign/source/ui/report/dlgedfac.cxx
+++ b/reportdesign/source/ui/report/dlgedfac.cxx
@@ -46,7 +46,8 @@ DlgEdFactory::~DlgEdFactory()
 
 
 
-IMPL_LINK( DlgEdFactory, MakeObject, SdrObjFactory *, pObjFactory )
+IMPL_STATIC_LINK_NOINSTANCE(
+    DlgEdFactory, MakeObject, SdrObjFactory *, pObjFactory )
 {
     if ( pObjFactory->nInventor == ReportInventor )
     {
diff --git a/sc/inc/externalrefmgr.hxx b/sc/inc/externalrefmgr.hxx
index 76e09e4..9af6eef 100644
--- a/sc/inc/externalrefmgr.hxx
+++ b/sc/inc/externalrefmgr.hxx
@@ -78,7 +78,7 @@ private:
     ScExternalRefLink() SAL_DELETED_FUNCTION;
     ScExternalRefLink(const ScExternalRefLink&) SAL_DELETED_FUNCTION;
 
-    DECL_LINK( ExternalRefEndEditHdl, void* );
+    DECL_STATIC_LINK( ScExternalRefLink, ExternalRefEndEditHdl, void* );
 
     sal_uInt16  mnFileId;
     OUString    maFilterName;
diff --git a/sc/inc/userdat.hxx b/sc/inc/userdat.hxx
index 5083c98..c01cbf5 100644
--- a/sc/inc/userdat.hxx
+++ b/sc/inc/userdat.hxx
@@ -35,7 +35,7 @@
 
 class ScDrawObjFactory
 {
-    DECL_LINK( MakeUserData, SdrObjFactory * );
+    DECL_STATIC_LINK( ScDrawObjFactory, MakeUserData, SdrObjFactory * );
 public:
     ScDrawObjFactory();
    ~ScDrawObjFactory();
diff --git a/sc/source/core/data/userdat.cxx b/sc/source/core/data/userdat.cxx
index 371c6e4..4581edf 100644
--- a/sc/source/core/data/userdat.cxx
+++ b/sc/source/core/data/userdat.cxx
@@ -31,7 +31,8 @@ ScDrawObjFactory::~ScDrawObjFactory()
     SdrObjFactory::RemoveMakeUserDataHdl( LINK ( this, ScDrawObjFactory, MakeUserData ) );
 }
 
-IMPL_LINK( ScDrawObjFactory, MakeUserData, SdrObjFactory *, pObjFactory )
+IMPL_STATIC_LINK_NOINSTANCE(
+    ScDrawObjFactory, MakeUserData, SdrObjFactory *, pObjFactory )
 {
     if ( pObjFactory->nInventor == SC_DRAWLAYER )
     {
diff --git a/sc/source/ui/condformat/condformatdlg.cxx b/sc/source/ui/condformat/condformatdlg.cxx
index d4ea0ca..fe91602 100644
--- a/sc/source/ui/condformat/condformatdlg.cxx
+++ b/sc/source/ui/condformat/condformatdlg.cxx
@@ -573,7 +573,7 @@ IMPL_LINK( ScCondFormatDlg, RangeGetFocusHdl, formula::RefEdit*, pEdit )
     return 0;
 }
 
-IMPL_LINK_NOARG( ScCondFormatDlg, RangeLoseFocusHdl )
+IMPL_STATIC_LINK_NOINSTANCE_NOARG( ScCondFormatDlg, RangeLoseFocusHdl )
 {
     //mpLastEdit = NULL;
     return 0;
diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx
index 5e8c66e..cccf39c 100644
--- a/sc/source/ui/docshell/externalrefmgr.cxx
+++ b/sc/source/ui/docshell/externalrefmgr.cxx
@@ -1337,7 +1337,7 @@ void ScExternalRefLink::SetDoReferesh(bool b)
     mbDoRefresh = b;
 }
 
-IMPL_LINK_NOARG(ScExternalRefLink, ExternalRefEndEditHdl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(ScExternalRefLink, ExternalRefEndEditHdl)
 {
     return 0;
 }
diff --git a/sc/source/ui/inc/acredlin.hxx b/sc/source/ui/inc/acredlin.hxx
index 96d43e3..f855670 100644
--- a/sc/source/ui/inc/acredlin.hxx
+++ b/sc/source/ui/inc/acredlin.hxx
@@ -139,7 +139,7 @@ private:
 
     DECL_LINK( FilterHandle, SvxTPFilter* );
     DECL_LINK( RefHandle, void* );
-    DECL_LINK( FilterModified, void* );
+    DECL_STATIC_LINK( ScAcceptChgDlg, FilterModified, void* );
     DECL_LINK( RejectHandle, SvxTPView*);
     DECL_LINK( AcceptHandle, SvxTPView*);
     DECL_LINK( RejectAllHandle, void*);
diff --git a/sc/source/ui/inc/condformatdlg.hxx b/sc/source/ui/inc/condformatdlg.hxx
index eaf90aa..6036861 100644
--- a/sc/source/ui/inc/condformatdlg.hxx
+++ b/sc/source/ui/inc/condformatdlg.hxx
@@ -129,7 +129,7 @@ public:
     void InvalidateRefData();
 
     DECL_LINK( RangeGetFocusHdl, formula::RefEdit* );
-    DECL_LINK( RangeLoseFocusHdl, void* );
+    DECL_STATIC_LINK( ScCondFormatDlg, RangeLoseFocusHdl, void* );
 };
 
 #endif
diff --git a/sc/source/ui/inc/opredlin.hxx b/sc/source/ui/inc/opredlin.hxx
index adfb406..477422f 100644
--- a/sc/source/ui/inc/opredlin.hxx
+++ b/sc/source/ui/inc/opredlin.hxx
@@ -41,7 +41,7 @@ class ScRedlineOptionsTabPage : public SfxTabPage
     VclPtr<ColorListBox>       m_pInsertColorLB;
     VclPtr<ColorListBox>       m_pMoveColorLB;
     OUString            aAuthorStr;
-    DECL_LINK(ColorHdl, void *);
+    DECL_STATIC_LINK(ScRedlineOptionsTabPage, ColorHdl, void *);
 
 public:
 
diff --git a/sc/source/ui/inc/scuitphfedit.hxx b/sc/source/ui/inc/scuitphfedit.hxx
index fa0cc5d..c22ec25 100644
--- a/sc/source/ui/inc/scuitphfedit.hxx
+++ b/sc/source/ui/inc/scuitphfedit.hxx
@@ -99,7 +99,7 @@ private:
     static bool IsExtFileNameEntry(EditTextObject* pTextObj);
     DECL_LINK( ListHdl_Impl, ListBox* );
     DECL_LINK( ClickHdl,  PushButton* );
-    DECL_LINK( MenuHdl, ScExtIButton* );
+    DECL_STATIC_LINK( ScHFEditPage, MenuHdl, ScExtIButton* );
 };
 
 class ScRightHeaderEditPage : public ScHFEditPage
diff --git a/sc/source/ui/inc/viewdata.hxx b/sc/source/ui/inc/viewdata.hxx
index b5348cd..20854ee 100644
--- a/sc/source/ui/inc/viewdata.hxx
+++ b/sc/source/ui/inc/viewdata.hxx
@@ -211,8 +211,8 @@ private:
     bool                bPagebreak:1;               // Page break preview mode
     bool                bSelCtrlMouseClick:1;       // special selection handling for ctrl-mouse-click
 
-    SAL_DLLPRIVATE DECL_LINK (EmptyEditHdl, void*);
-    SAL_DLLPRIVATE DECL_LINK (EditEngineHdl, EditStatus*);
+    DECL_DLLPRIVATE_STATIC_LINK (ScViewData, EmptyEditHdl, void*);
+    DECL_DLLPRIVATE_LINK (EditEngineHdl, EditStatus*);
 
     SAL_DLLPRIVATE void          CalcPPT();
     SAL_DLLPRIVATE void          CreateTabData( SCTAB nNewTab );
diff --git a/sc/source/ui/miscdlgs/acredlin.cxx b/sc/source/ui/miscdlgs/acredlin.cxx
index 71d7d2e..18b7b24 100644
--- a/sc/source/ui/miscdlgs/acredlin.cxx
+++ b/sc/source/ui/miscdlgs/acredlin.cxx
@@ -1864,7 +1864,7 @@ void ScAcceptChgDlg::InitFilter()
     }
 }
 
-IMPL_LINK_NOARG(ScAcceptChgDlg, FilterModified)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(ScAcceptChgDlg, FilterModified)
 {
     return 0;
 }
diff --git a/sc/source/ui/optdlg/calcoptionsdlg.cxx b/sc/source/ui/optdlg/calcoptionsdlg.cxx
index 92d88f6..85141b0 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.cxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.cxx
@@ -673,7 +673,8 @@ struct Reduction : Op
 
 }
 
-IMPL_LINK( ScCalcOptionsDialog, TestClickHdl, PushButton*, pButton)
+IMPL_STATIC_LINK_NOINSTANCE(
+    ScCalcOptionsDialog, TestClickHdl, PushButton*, pButton)
 {
     pButton->Disable();
 
diff --git a/sc/source/ui/optdlg/calcoptionsdlg.hxx b/sc/source/ui/optdlg/calcoptionsdlg.hxx
index 254a18c..179b488 100644
--- a/sc/source/ui/optdlg/calcoptionsdlg.hxx
+++ b/sc/source/ui/optdlg/calcoptionsdlg.hxx
@@ -42,7 +42,7 @@ public:
     DECL_LINK( DeviceSelHdl, void* );
     DECL_LINK( NumModifiedHdl, void * );
     DECL_LINK( EditModifiedHdl, Edit * );
-    DECL_LINK( TestClickHdl, PushButton* );
+    DECL_STATIC_LINK( ScCalcOptionsDialog, TestClickHdl, PushButton* );
     DECL_LINK( AsZeroModifiedHdl, CheckBox*);
     DECL_LINK( ConversionModifiedHdl, ListBox*);
     DECL_LINK( SyntaxModifiedHdl, ListBox*);
diff --git a/sc/source/ui/optdlg/opredlin.cxx b/sc/source/ui/optdlg/opredlin.cxx
index 3560c01..08c8073 100644
--- a/sc/source/ui/optdlg/opredlin.cxx
+++ b/sc/source/ui/optdlg/opredlin.cxx
@@ -194,7 +194,7 @@ void ScRedlineOptionsTabPage::Reset( const SfxItemSet* /* rSet */ )
 
 }
 
-IMPL_LINK_NOARG(ScRedlineOptionsTabPage, ColorHdl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(ScRedlineOptionsTabPage, ColorHdl)
 {
     return 0;
 }
diff --git a/sc/source/ui/pagedlg/scuitphfedit.cxx b/sc/source/ui/pagedlg/scuitphfedit.cxx
index 5bfa114..ee68914 100644
--- a/sc/source/ui/pagedlg/scuitphfedit.cxx
+++ b/sc/source/ui/pagedlg/scuitphfedit.cxx
@@ -828,7 +828,7 @@ IMPL_LINK( ScHFEditPage, ClickHdl, PushButton*, pBtn )
     return 0;
 }
 
-IMPL_LINK( ScHFEditPage, MenuHdl, ScExtIButton*, pBtn )
+IMPL_STATIC_LINK_NOINSTANCE( ScHFEditPage, MenuHdl, ScExtIButton*, pBtn )
 {
     pActiveEdWnd = ::GetScEditWindow();
     if ( !pActiveEdWnd )
diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx
index 1f824dc..71ef92a 100644
--- a/sc/source/ui/view/viewdata.cxx
+++ b/sc/source/ui/view/viewdata.cxx
@@ -1090,7 +1090,7 @@ void ScViewData::SetEditEngine( ScSplitPos eWhich,
     //  needed, wenn position changed
 }
 
-IMPL_LINK_NOARG(ScViewData, EmptyEditHdl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(ScViewData, EmptyEditHdl)
 {
     return 0;
 }
diff --git a/sd/inc/sdmod.hxx b/sd/inc/sdmod.hxx
index fc44c68..cfad169 100644
--- a/sd/inc/sdmod.hxx
+++ b/sd/inc/sdmod.hxx
@@ -189,7 +189,7 @@ private:
         @VclSimpleEvent *
             a poiter to a VCLSimpleEvent (see vcl/vclevent.hxx )
     */
-    DECL_LINK( EventListenerHdl, VclSimpleEvent* );
+    DECL_STATIC_LINK( SdModule, EventListenerHdl, VclSimpleEvent* );
 
 };
 
diff --git a/sd/source/ui/annotations/annotationwindow.cxx b/sd/source/ui/annotations/annotationwindow.cxx
index a783715..ba881e8 100644
--- a/sd/source/ui/annotations/annotationwindow.cxx
+++ b/sd/source/ui/annotations/annotationwindow.cxx
@@ -513,7 +513,7 @@ IMPL_LINK(AnnotationWindow, ScrollHdl, ScrollBar*, pScroll)
     return 0;
 }
 
-IMPL_LINK_NOARG(AnnotationWindow, ModifyHdl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(AnnotationWindow, ModifyHdl)
 {
     return 0;
 }
diff --git a/sd/source/ui/annotations/annotationwindow.hxx b/sd/source/ui/annotations/annotationwindow.hxx
index f81e16d..4eb3525 100644
--- a/sd/source/ui/annotations/annotationwindow.hxx
+++ b/sd/source/ui/annotations/annotationwindow.hxx
@@ -97,7 +97,7 @@ class AnnotationWindow : public FloatingWindow
     protected:
         void            SetSizePixel( const Size& rNewSize ) SAL_OVERRIDE;
 
-        DECL_LINK(ModifyHdl, void*);
+        DECL_STATIC_LINK(AnnotationWindow, ModifyHdl, void*);
         DECL_LINK(ScrollHdl, ScrollBar*);
 
     public:
diff --git a/sd/source/ui/app/sdmod1.cxx b/sd/source/ui/app/sdmod1.cxx
index 2b9a522..adb22b1 100644
--- a/sd/source/ui/app/sdmod1.cxx
+++ b/sd/source/ui/app/sdmod1.cxx
@@ -416,7 +416,7 @@ void SdModule::GetState(SfxItemSet& rItemSet)
     }
 }
 
-IMPL_LINK( SdModule, EventListenerHdl, VclSimpleEvent*, pEvent )
+IMPL_STATIC_LINK_NOINSTANCE( SdModule, EventListenerHdl, VclSimpleEvent*, pEvent )
 {
     if( pEvent && (pEvent->GetId() == VCLEVENT_WINDOW_COMMAND) && static_cast<VclWindowEvent*>(pEvent)->GetData() )
     {
diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx
index 37f1e41..c074d58 100644
--- a/sfx2/source/dialog/dinfdlg.cxx
+++ b/sfx2/source/dialog/dinfdlg.cxx
@@ -862,7 +862,7 @@ IMPL_LINK_NOARG(SfxDocumentPage, SignatureHdl)
     return 0;
 }
 
-IMPL_LINK_NOARG(SfxDocumentPage, ChangePassHdl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(SfxDocumentPage, ChangePassHdl)
 {
     SfxObjectShell* pShell = SfxObjectShell::Current();
     do
@@ -1510,7 +1510,8 @@ void CustomPropertiesWindow::dispose()
     vcl::Window::dispose();
 }
 
-IMPL_LINK( CustomPropertiesWindow, TypeHdl, CustomPropertiesTypeBox*, pBox )
+IMPL_STATIC_LINK_NOINSTANCE(
+    CustomPropertiesWindow, TypeHdl, CustomPropertiesTypeBox*, pBox )
 {
     long nType = reinterpret_cast<long>( pBox->GetSelectEntryData() );
     CustomPropertyLine* pLine = pBox->GetLine();
@@ -1891,7 +1892,7 @@ void CustomPropertiesWindow::AddLine( const OUString& sName, Any& rAny )
         pNewLine->m_aTypeBox->SelectEntryPos( m_aTypeBox->GetEntryPos( reinterpret_cast<void*>(nType) ) );
     }
 
-    TypeHdl( pNewLine->m_aTypeBox.get() );
+    TypeHdl( nullptr, pNewLine->m_aTypeBox.get() );
     pNewLine->m_aNameBox->GrabFocus();
 }
 
diff --git a/svtools/source/contnr/imivctl.hxx b/svtools/source/contnr/imivctl.hxx
index 5b8151f..ff7a372 100644
--- a/svtools/source/contnr/imivctl.hxx
+++ b/svtools/source/contnr/imivctl.hxx
@@ -228,7 +228,7 @@ class SvxIconChoiceCtrl_Impl
                         DECL_LINK( ScrollLeftRightHdl, ScrollBar * );
                         DECL_LINK_TYPED(EditTimeoutHdl, Idle *, void);
                         DECL_LINK( UserEventHdl, void* );
-                        DECL_LINK( EndScrollHdl, void* );
+                        DECL_STATIC_LINK( SvxIconChoiceCtrl_Impl, EndScrollHdl, void* );
                         DECL_LINK_TYPED( AutoArrangeHdl, Idle*, void );
                         DECL_LINK_TYPED( DocRectChangedHdl, Idle*, void );
                         DECL_LINK_TYPED( VisRectChangedHdl, Idle*, void );
diff --git a/svtools/source/contnr/imivctl1.cxx b/svtools/source/contnr/imivctl1.cxx
index 8f2b6f6..62066db 100644
--- a/svtools/source/contnr/imivctl1.cxx
+++ b/svtools/source/contnr/imivctl1.cxx
@@ -253,7 +253,7 @@ IMPL_LINK( SvxIconChoiceCtrl_Impl, ScrollLeftRightHdl, ScrollBar*, pScrollBar )
     return 0;
 }
 
-IMPL_LINK_NOARG(SvxIconChoiceCtrl_Impl, EndScrollHdl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(SvxIconChoiceCtrl_Impl, EndScrollHdl)
 {
     return 0;
 }
diff --git a/svtools/source/dialogs/addresstemplate.cxx b/svtools/source/dialogs/addresstemplate.cxx
index 40a6157..64c6612 100644
--- a/svtools/source/dialogs/addresstemplate.cxx
+++ b/svtools/source/dialogs/addresstemplate.cxx
@@ -1134,7 +1134,8 @@ void AssignmentPersistentData::ImplCommit()
     }
 
 
-    IMPL_LINK(AddressBookSourceDialog, OnComboGetFocus, ComboBox*, _pBox)
+    IMPL_STATIC_LINK_NOINSTANCE(
+        AddressBookSourceDialog, OnComboGetFocus, ComboBox*, _pBox)
     {
         _pBox->SaveValue();
         return 0L;
diff --git a/svx/source/engine3d/float3d.cxx b/svx/source/engine3d/float3d.cxx
index a903ccf..29d6808 100644
--- a/svx/source/engine3d/float3d.cxx
+++ b/svx/source/engine3d/float3d.cxx
@@ -2641,7 +2641,7 @@ void Svx3DWin::ClickLight(PushButton& rBtn)
 
 
 
-IMPL_LINK_NOARG(Svx3DWin, ChangeLightCallbackHdl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(Svx3DWin, ChangeLightCallbackHdl)
 {
     return 0L;
 }
diff --git a/svx/source/engine3d/objfac3d.cxx b/svx/source/engine3d/objfac3d.cxx
index 4eb26d7..286a939 100644
--- a/svx/source/engine3d/objfac3d.cxx
+++ b/svx/source/engine3d/objfac3d.cxx
@@ -45,7 +45,8 @@ E3dObjFactory::~E3dObjFactory()
 
 // Generate chart internal objects
 
-IMPL_LINK( E3dObjFactory, MakeObject, SdrObjFactory*, pObjFactory)
+IMPL_STATIC_LINK_NOINSTANCE(
+    E3dObjFactory, MakeObject, SdrObjFactory*, pObjFactory)
 {
     if ( pObjFactory->nInventor == E3dInventor )
     {
diff --git a/svx/source/form/fmobjfac.cxx b/svx/source/form/fmobjfac.cxx
index 555d793..e9a7224 100644
--- a/svx/source/form/fmobjfac.cxx
+++ b/svx/source/form/fmobjfac.cxx
@@ -110,7 +110,8 @@ namespace
     }
 }
 
-IMPL_LINK(FmFormObjFactory, MakeObject, SdrObjFactory*, pObjFactory)
+IMPL_STATIC_LINK_NOINSTANCE(
+    FmFormObjFactory, MakeObject, SdrObjFactory*, pObjFactory)
 {
     if (pObjFactory->nInventor == FmFormInventor)
     {
diff --git a/svx/source/gallery2/galmisc.cxx b/svx/source/gallery2/galmisc.cxx
index cf2a75f..cac4a3f 100644
--- a/svx/source/gallery2/galmisc.cxx
+++ b/svx/source/gallery2/galmisc.cxx
@@ -76,7 +76,8 @@ BitmapEx GalleryResGetBitmapEx( sal_uInt32 nId )
     return aBmpEx;
 }
 
-IMPL_LINK( SgaUserDataFactory, MakeUserData, SdrObjFactory*, pObjFactory )
+IMPL_STATIC_LINK_NOINSTANCE(
+    SgaUserDataFactory, MakeUserData, SdrObjFactory*, pObjFactory )
 {
     if ( pObjFactory->nInventor == IV_IMAPINFO && pObjFactory->nIdentifier == ID_IMAPINFO )
         pObjFactory->pNewData = new SgaIMapInfo;
diff --git a/sw/inc/dobjfac.hxx b/sw/inc/dobjfac.hxx
index d078795..2ea3247 100644
--- a/sw/inc/dobjfac.hxx
+++ b/sw/inc/dobjfac.hxx
@@ -26,7 +26,7 @@ class SdrObjFactory;
 class SwObjectFactory
 {
 public:
-    DECL_LINK( MakeObject, SdrObjFactory * );
+    DECL_STATIC_LINK( SwObjectFactory, MakeObject, SdrObjFactory * );
 };
 
 extern SwObjectFactory aSwObjectFactory;
diff --git a/sw/source/core/draw/dobjfac.cxx b/sw/source/core/draw/dobjfac.cxx
index 891856b..7ff5e16 100644
--- a/sw/source/core/draw/dobjfac.cxx
+++ b/sw/source/core/draw/dobjfac.cxx
@@ -23,7 +23,8 @@
 
 SwObjectFactory aSwObjectFactory;
 
-IMPL_LINK( SwObjectFactory, MakeObject, SdrObjFactory*, pObjFactory )
+IMPL_STATIC_LINK_NOINSTANCE(
+    SwObjectFactory, MakeObject, SdrObjFactory*, pObjFactory )
 {
     if ( pObjFactory->nInventor == SWGInventor )
     {
diff --git a/sw/source/ui/dialog/uiregionsw.cxx b/sw/source/ui/dialog/uiregionsw.cxx
index 2281069..4fda5f8 100644
--- a/sw/source/ui/dialog/uiregionsw.cxx
+++ b/sw/source/ui/dialog/uiregionsw.cxx
@@ -1700,7 +1700,8 @@ IMPL_LINK( SwInsertSectionTabPage, ChangeHideHdl, CheckBox *, pBox )
     return 0;
 }
 
-IMPL_LINK_NOARG(SwInsertSectionTabPage, ChangeEditInReadonlyHdl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(
+    SwInsertSectionTabPage, ChangeEditInReadonlyHdl)
 {
     return 0;
 }
diff --git a/sw/source/ui/dialog/wordcountdialog.cxx b/sw/source/ui/dialog/wordcountdialog.cxx
index 471309e..3eb1d45 100644
--- a/sw/source/ui/dialog/wordcountdialog.cxx
+++ b/sw/source/ui/dialog/wordcountdialog.cxx
@@ -34,7 +34,7 @@
 #include <vcl/msgbox.hxx>
 #include <vcl/settings.hxx>
 
-IMPL_LINK_NOARG(SwWordCountFloatDlg, CloseHdl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(SwWordCountFloatDlg, CloseHdl)
 {
     SfxViewFrame* pVFrame = ::GetActiveView()->GetViewFrame();
     if (pVFrame != NULL)
diff --git a/sw/source/ui/table/tabledlg.cxx b/sw/source/ui/table/tabledlg.cxx
index 9d60ec6..7f82f5e 100644
--- a/sw/source/ui/table/tabledlg.cxx
+++ b/sw/source/ui/table/tabledlg.cxx
@@ -1803,7 +1803,8 @@ IMPL_LINK( SwTextFlowPage, SplitHdl_Impl, CheckBox*, pBox )
     return 0;
 }
 
-IMPL_LINK( SwTextFlowPage, SplitRowHdl_Impl, TriStateBox*, pBox )
+IMPL_STATIC_LINK_NOINSTANCE(
+    SwTextFlowPage, SplitRowHdl_Impl, TriStateBox*, pBox )
 {
     pBox->EnableTriState(false);
     return 0;
diff --git a/sw/source/uibase/app/apphdl.cxx b/sw/source/uibase/app/apphdl.cxx
index bfa7c50..ff543d6 100644
--- a/sw/source/uibase/app/apphdl.cxx
+++ b/sw/source/uibase/app/apphdl.cxx
@@ -247,7 +247,8 @@ class SwMailMergeWizardExecutor : public salhelper::SimpleReferenceObject
 
     DECL_LINK( EndDialogHdl, AbstractMailMergeWizard* );
     DECL_LINK( DestroyDialogHdl, void* );
-    DECL_LINK( DestroyWizardHdl, AbstractMailMergeWizard* );
+    DECL_STATIC_LINK(
+        SwMailMergeWizardExecutor, DestroyWizardHdl, AbstractMailMergeWizard* );
     DECL_LINK( CancelHdl, void* );
     DECL_LINK( CloseFrameHdl, void* );
 
@@ -540,7 +541,9 @@ IMPL_LINK_NOARG(SwMailMergeWizardExecutor, DestroyDialogHdl)
     return 0L;
 }
 
-IMPL_LINK( SwMailMergeWizardExecutor, DestroyWizardHdl, AbstractMailMergeWizard*, pDialog )
+IMPL_STATIC_LINK_NOINSTANCE(
+    SwMailMergeWizardExecutor, DestroyWizardHdl, AbstractMailMergeWizard*,
+    pDialog )
 {
     delete pDialog;
     return 0L;
diff --git a/sw/source/uibase/dbui/dbui.cxx b/sw/source/uibase/dbui/dbui.cxx
index bb5aadf..96f115a 100644
--- a/sw/source/uibase/dbui/dbui.cxx
+++ b/sw/source/uibase/dbui/dbui.cxx
@@ -140,7 +140,7 @@ void CancelableDialog::Show()
        Dialog::Show();
 }
 
-IMPL_LINK_NOARG(CancelableDialog, DlgClosedHdl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(CancelableDialog, DlgClosedHdl)
 {
     return 0;
 }
diff --git a/sw/source/uibase/envelp/syncbtn.cxx b/sw/source/uibase/envelp/syncbtn.cxx
index e75751d..1c38be2 100644
--- a/sw/source/uibase/envelp/syncbtn.cxx
+++ b/sw/source/uibase/envelp/syncbtn.cxx
@@ -79,7 +79,7 @@ void SwSyncBtnDlg::dispose()
     SfxFloatingWindow::dispose();
 }
 
-IMPL_LINK_NOARG(SwSyncBtnDlg, BtnHdl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(SwSyncBtnDlg, BtnHdl)
 {
     SfxViewFrame::Current()->GetDispatcher()->Execute(FN_UPDATE_ALL_LINKS, SfxCallMode::ASYNCHRON);
     return 0;
diff --git a/sw/source/uibase/inc/dbui.hxx b/sw/source/uibase/inc/dbui.hxx
index 8f5c7fe..519fad0 100644
--- a/sw/source/uibase/inc/dbui.hxx
+++ b/sw/source/uibase/inc/dbui.hxx
@@ -33,7 +33,7 @@ protected:
     CancelableDialog( vcl::Window *pParent, bool modal, const OUString& rID,
                       const OUString& rUIXMLDescription );
 
-    DECL_LINK(DlgClosedHdl, void *);
+    DECL_STATIC_LINK(CancelableDialog, DlgClosedHdl, void *);
 
     using Dialog::Execute;
     using Dialog::StartExecuteModal;
diff --git a/sw/source/uibase/inc/regionsw.hxx b/sw/source/uibase/inc/regionsw.hxx
index 91dcb6f..b0ea633 100644
--- a/sw/source/uibase/inc/regionsw.hxx
+++ b/sw/source/uibase/inc/regionsw.hxx
@@ -173,7 +173,7 @@ class SwInsertSectionTabPage : public SfxTabPage
 
     DECL_LINK( ChangeHideHdl, CheckBox * );
     // #114856# edit in readonly sections
-    DECL_LINK(ChangeEditInReadonlyHdl, void *);
+    DECL_STATIC_LINK(SwInsertSectionTabPage, ChangeEditInReadonlyHdl, void *);
     DECL_LINK( ChangeProtectHdl, CheckBox * );
     DECL_LINK( ChangePasswdHdl, Button * );
     DECL_LINK(NameEditHdl, void *);
diff --git a/sw/source/uibase/inc/syncbtn.hxx b/sw/source/uibase/inc/syncbtn.hxx
index 83a1607..e2fa361 100644
--- a/sw/source/uibase/inc/syncbtn.hxx
+++ b/sw/source/uibase/inc/syncbtn.hxx
@@ -27,7 +27,7 @@ class SwSyncBtnDlg : public SfxFloatingWindow
 {
     VclPtr<PushButton> m_pSyncBtn;
 
-    DECL_LINK( BtnHdl, void* );
+    DECL_STATIC_LINK( SwSyncBtnDlg, BtnHdl, void* );
 
 public:
     SwSyncBtnDlg(SfxBindings*, SfxChildWindow*, vcl::Window *pParent);
diff --git a/sw/source/uibase/inc/wordcountdialog.hxx b/sw/source/uibase/inc/wordcountdialog.hxx
index 63aa450..d4d9bde 100644
--- a/sw/source/uibase/inc/wordcountdialog.hxx
+++ b/sw/source/uibase/inc/wordcountdialog.hxx
@@ -50,7 +50,7 @@ class SwWordCountFloatDlg : public SfxModelessDialog
 
     VclPtr<CloseButton> m_pClosePB;
 
-    DECL_LINK( CloseHdl,     void* );
+    DECL_STATIC_LINK( SwWordCountFloatDlg, CloseHdl, void* );
 public:
     SwWordCountFloatDlg(     SfxBindings* pBindings,
                              SfxChildWindow* pChild,
diff --git a/sw/source/uibase/inc/workctrl.hxx b/sw/source/uibase/inc/workctrl.hxx
index 65ea2c8..9f3287e 100644
--- a/sw/source/uibase/inc/workctrl.hxx
+++ b/sw/source/uibase/inc/workctrl.hxx
@@ -90,7 +90,7 @@ public:
                                               SfxItemState eState,
                                               const SfxPoolItem* pState ) SAL_OVERRIDE;
 
-    DECL_LINK(PopupHdl, PopupMenu*);
+    DECL_STATIC_LINK(SwTbxAutoTextCtrl, PopupHdl, PopupMenu*);
 };
 
 class SwTbxFieldCtrl : public SfxToolBoxControl
diff --git a/sw/source/uibase/ribbar/workctrl.cxx b/sw/source/uibase/ribbar/workctrl.cxx
index 18d6342..07faafc 100644
--- a/sw/source/uibase/ribbar/workctrl.cxx
+++ b/sw/source/uibase/ribbar/workctrl.cxx
@@ -238,7 +238,7 @@ void SwTbxAutoTextCtrl::StateChanged( sal_uInt16,
     GetToolBox().EnableItem( GetId(), (GetItemState(pState) != SfxItemState::DISABLED) );
 }
 
-IMPL_LINK(SwTbxAutoTextCtrl, PopupHdl, PopupMenu*, pMenu)
+IMPL_STATIC_LINK_NOINSTANCE(SwTbxAutoTextCtrl, PopupHdl, PopupMenu*, pMenu)
 {
     sal_uInt16 nId = pMenu->GetCurItemId();
 
diff --git a/sw/source/uibase/table/tablepg.hxx b/sw/source/uibase/table/tablepg.hxx
index 3f2d8bc..6d8a767 100644
--- a/sw/source/uibase/table/tablepg.hxx
+++ b/sw/source/uibase/table/tablepg.hxx
@@ -177,7 +177,7 @@ class SwTextFlowPage : public SfxTabPage
     DECL_LINK( PageBreakPosHdl_Impl, RadioButton* );
     DECL_LINK( PageBreakTypeHdl_Impl, RadioButton* );
     DECL_LINK( SplitHdl_Impl, CheckBox* );
-    DECL_LINK( SplitRowHdl_Impl, TriStateBox* );
+    DECL_STATIC_LINK( SwTextFlowPage, SplitRowHdl_Impl, TriStateBox* );
     DECL_LINK( HeadLineCBClickHdl, void* p = 0 );
 
 public:
diff --git a/unotools/source/ucbhelper/ucblockbytes.cxx b/unotools/source/ucbhelper/ucblockbytes.cxx
index d33c570..5072d60 100644
--- a/unotools/source/ucbhelper/ucblockbytes.cxx
+++ b/unotools/source/ucbhelper/ucblockbytes.cxx
@@ -1505,7 +1505,7 @@ ErrCode UcbLockBytes::Stat( SvLockBytesStat *pStat, SvLockBytesStatFlag) const
     return ERRCODE_NONE;
 }
 
-IMPL_LINK_NOARG(UcbLockBytes, DataAvailHdl)
+IMPL_STATIC_LINK_NOINSTANCE_NOARG(UcbLockBytes, DataAvailHdl)
 {
     return 0;
 }
diff --git a/unotools/source/ucbhelper/ucblockbytes.hxx b/unotools/source/ucbhelper/ucblockbytes.hxx
index 10ef283..2808a3a 100644
--- a/unotools/source/ucbhelper/ucblockbytes.hxx
+++ b/unotools/source/ucbhelper/ucblockbytes.hxx
@@ -103,7 +103,7 @@ class UcbLockBytes : public virtual SvLockBytes
     bool                    m_bDontClose;
     bool                    m_bStreamValid;
 
-    DECL_LINK(              DataAvailHdl, void * );
+    DECL_STATIC_LINK( UcbLockBytes, DataAvailHdl, void * );
 
                             UcbLockBytes( UcbLockBytesHandler* pHandler );
 protected:
diff --git a/vcl/workben/svpclient.cxx b/vcl/workben/svpclient.cxx
index 8f3f4d4..30b96c5 100644
--- a/vcl/workben/svpclient.cxx
+++ b/vcl/workben/svpclient.cxx
@@ -116,7 +116,7 @@ public:
 
     DECL_LINK( ListHdl, Button* );
     DECL_LINK( SelectHdl, ListBox* );
-    DECL_LINK( QuitHdl, Button* );
+    DECL_STATIC_LINK( MyWin, QuitHdl, Button* );
 };
 
 void Main()
@@ -238,7 +238,7 @@ IMPL_LINK( MyWin, ListHdl, Button*, )
     return 0;
 }
 
-IMPL_LINK( MyWin, QuitHdl, Button*, )
+IMPL_STATIC_LINK_NOINSTANCE( MyWin, QuitHdl, Button*, )
 {
     processCommand( "quit" );
     return 0;
commit e6fa865b4d5c7eb0576f7b1510077bca081ce4fb
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Fri May 8 18:55:30 2015 +0200

    lopluign:staticmethods: Improve diagnostics
    
    Change-Id: I6079f387a697c5fe794655e455a19d0cb44b96bc

diff --git a/compilerplugins/clang/staticmethods.cxx b/compilerplugins/clang/staticmethods.cxx
index decb3ff..71e3b6a 100644
--- a/compilerplugins/clang/staticmethods.cxx
+++ b/compilerplugins/clang/staticmethods.cxx
@@ -201,8 +201,15 @@ bool StaticMethods::TraverseCXXMethodDecl(const CXXMethodDecl * pCXXMethodDecl)
     report(
         DiagnosticsEngine::Warning,
         "this method can be declared static " + fqn,
-        pCXXMethodDecl->getCanonicalDecl()->getLocStart())
+        pCXXMethodDecl->getCanonicalDecl()->getLocation())
       << pCXXMethodDecl->getCanonicalDecl()->getSourceRange();
+    FunctionDecl const * def;
+    if (pCXXMethodDecl->isDefined(def)
+        && def != pCXXMethodDecl->getCanonicalDecl())
+    {
+        report(DiagnosticsEngine::Note, "defined here:", def->getLocation())
+            << def->getSourceRange();
+    }
     return true;
 }
 


More information about the Libreoffice-commits mailing list