[Libreoffice-commits] .: basctl/source basebmp/inc basic/inc canvas/inc canvas/source chart2/source codemaker/source comphelper/inc comphelper/source connectivity/inc connectivity/source cppuhelper/inc cppuhelper/source cppuhelper/unotypes cppu/qa cppu/source cui/source dbaccess/inc dbaccess/source editeng/source extensions/source forms/source formula/inc formula/source fpicker/source framework/inc framework/source javaunohelper/cppumaker libcmis/libcmis-0.1.0-non-virtual-dtor.patch libcmis/makefile.mk linguistic/inc linguistic/source oox/inc reportdesign/inc reportdesign/source sal/inc sc/inc sc/source sdext/source sd/inc sd/source sfx2/inc sfx2/source slideshow/source solenv/gbuild solenv/inc starmath/inc store/inc store/source svl/inc svtools/inc svtools/source svx/inc svx/source sw/inc sw/source test/inc toolkit/inc tools/source ucb/source unotest/inc unotools/inc vbahelper/inc vcl/headless vcl/inc vcl/unx writerfilter/inc writerfilter/source xmlhelp/source xmloff/inc xmloff/source

Stephan Bergmann sbergmann at kemper.freedesktop.org
Wed Mar 14 05:32:34 PDT 2012


 basctl/source/basicide/documentenumeration.hxx                             |    3 +
 basctl/source/basicide/scriptdocument.cxx                                  |    2 
 basebmp/inc/basebmp/bitmapdevice.hxx                                       |    3 +
 basic/inc/basic/basicmanagerrepository.hxx                                 |    3 +
 basic/inc/basic/basmgr.hxx                                                 |    3 +
 canvas/inc/canvas/base/sprite.hxx                                          |    3 +
 canvas/inc/canvas/base/spritesurface.hxx                                   |    3 +
 canvas/source/cairo/cairo_sprite.hxx                                       |    3 +
 canvas/source/null/sprite.hxx                                              |    3 +
 canvas/source/vcl/sprite.hxx                                               |    3 +
 chart2/source/controller/chartapiwrapper/ReferenceSizePropertyProvider.hxx |    3 +
 chart2/source/controller/inc/DrawViewWrapper.hxx                           |    3 +
 chart2/source/controller/inc/RangeSelectionListener.hxx                    |    3 +
 chart2/source/controller/inc/TabPageNotifiable.hxx                         |    3 +
 chart2/source/inc/ConfigItemListener.hxx                                   |    3 +
 chart2/source/inc/chartview/ExplicitValueProvider.hxx                      |    3 +
 chart2/source/model/main/UndoManager.cxx                                   |    1 
 chart2/source/view/inc/LegendEntryProvider.hxx                             |    3 +
 chart2/source/view/inc/MinimumAndMaximumSupplier.hxx                       |    3 +
 codemaker/source/cppumaker/cpputype.cxx                                    |    9 ++-
 comphelper/inc/comphelper/accessiblecomponenthelper.hxx                    |    5 +
 comphelper/inc/comphelper/accessibleselectionhelper.hxx                    |    2 
 comphelper/inc/comphelper/accessiblewrapper.hxx                            |    5 +
 comphelper/inc/comphelper/asyncnotification.hxx                            |    3 +
 comphelper/inc/comphelper/componentbase.hxx                                |    2 
 comphelper/inc/comphelper/embeddedobjectcontainer.hxx                      |    3 +
 comphelper/inc/comphelper/propagg.hxx                                      |    3 +
 comphelper/inc/comphelper/serviceinfohelper.hxx                            |    3 +
 comphelper/source/misc/accessibleselectionhelper.cxx                       |    2 
 connectivity/inc/connectivity/IParseContext.hxx                            |    3 +
 connectivity/inc/connectivity/SQLStatementHelper.hxx                       |    3 +
 connectivity/inc/connectivity/sdbcx/IRefreshable.hxx                       |    9 +++
 connectivity/inc/connectivity/sdbcx/VCollection.hxx                        |    1 
 connectivity/inc/connectivity/virtualdbtools.hxx                           |   18 ++++++
 connectivity/inc/connectivity/warningscontainer.hxx                        |    3 +
 connectivity/source/drivers/mozab/bootstrap/MNSProfile.cxx                 |    2 
 connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx         |    3 -
 connectivity/source/drivers/mozab/mozillasrc/MDatabaseMetaDataHelper.cxx   |    3 +
 connectivity/source/drivers/mozab/post_include_mozilla.h                   |    4 +
 connectivity/source/drivers/mozab/pre_include_mozilla.h                    |    5 +
 connectivity/source/inc/TResultSetHelper.hxx                               |    3 +
 connectivity/source/inc/hsqldb/HConnection.hxx                             |    3 +
 connectivity/source/sdbcx/VCollection.cxx                                  |    3 -
 cppu/qa/Makefile                                                           |    4 -
 cppu/qa/test_unotype.cxx                                                   |   12 +++-
 cppu/source/threadpool/current.cxx                                         |    3 +
 cppuhelper/inc/cppuhelper/implbase.hxx                                     |    3 +
 cppuhelper/inc/cppuhelper/implbase1.hxx                                    |    3 +
 cppuhelper/inc/cppuhelper/implbase10.hxx                                   |    3 +
 cppuhelper/inc/cppuhelper/implbase11.hxx                                   |    3 +
 cppuhelper/inc/cppuhelper/implbase12.hxx                                   |    3 +
 cppuhelper/inc/cppuhelper/implbase2.hxx                                    |    3 +
 cppuhelper/inc/cppuhelper/implbase3.hxx                                    |    3 +
 cppuhelper/inc/cppuhelper/implbase4.hxx                                    |    3 +
 cppuhelper/inc/cppuhelper/implbase5.hxx                                    |    3 +
 cppuhelper/inc/cppuhelper/implbase6.hxx                                    |    3 +
 cppuhelper/inc/cppuhelper/implbase7.hxx                                    |    3 +
 cppuhelper/inc/cppuhelper/implbase8.hxx                                    |    3 +
 cppuhelper/inc/cppuhelper/implbase9.hxx                                    |    3 +
 cppuhelper/inc/cppuhelper/propertysetmixin.hxx                             |    7 ++
 cppuhelper/inc/cppuhelper/propshlp.hxx                                     |   12 ++--
 cppuhelper/source/exc_thrower.cxx                                          |    2 
 cppuhelper/unotypes/Makefile                                               |    7 +-
 cui/source/tabpages/borderconn.cxx                                         |    2 
 dbaccess/inc/IController.hxx                                               |    3 +
 dbaccess/inc/IReference.hxx                                                |    3 +
 dbaccess/source/core/inc/RefreshListener.hxx                               |    3 +
 dbaccess/source/core/inc/column.hxx                                        |    3 +
 dbaccess/source/core/inc/columnsettings.hxx                                |    3 +
 dbaccess/source/core/inc/containerapprove.hxx                              |    2 
 dbaccess/source/ext/macromigration/migrationprogress.hxx                   |    3 +
 dbaccess/source/ext/macromigration/progressmixer.hxx                       |    3 +
 dbaccess/source/ui/app/IApplicationController.hxx                          |    3 +
 dbaccess/source/ui/inc/IClipBoardTest.hxx                                  |    3 +
 dbaccess/source/ui/inc/IItemSetHelper.hxx                                  |    6 ++
 dbaccess/source/ui/inc/IUpdateHelper.hxx                                   |    3 +
 dbaccess/source/ui/inc/WCopyTable.hxx                                      |    9 +++
 dbaccess/source/ui/inc/adtabdlg.hxx                                        |    3 +
 dbaccess/source/ui/inc/callbacks.hxx                                       |    9 +++
 dbaccess/source/ui/inc/dbtreelistbox.hxx                                   |    3 +
 dbaccess/source/ui/inc/sbagrid.hxx                                         |    3 +
 dbaccess/source/ui/misc/dbaundomanager.cxx                                 |    2 
 dbaccess/source/ui/querydesign/JoinController.cxx                          |    2 
 editeng/source/items/svxfont.cxx                                           |    5 +
 extensions/source/propctrlr/browserline.hxx                                |    3 +
 extensions/source/propctrlr/browserlistbox.hxx                             |    3 +
 extensions/source/propctrlr/commoncontrol.hxx                              |    3 +
 extensions/source/propctrlr/composeduiupdate.hxx                           |    3 +
 extensions/source/propctrlr/propcontrolobserver.hxx                        |    3 +
 extensions/source/propctrlr/proplinelistener.hxx                           |    3 +
 extensions/source/update/check/actionlistener.hxx                          |    3 +
 extensions/source/update/check/download.hxx                                |    3 +
 extensions/source/update/check/updatecheckconfig.hxx                       |    3 +
 extensions/source/update/check/updatecheckconfiglistener.hxx               |    3 +
 forms/source/inc/featuredispatcher.hxx                                     |    3 +
 forms/source/inc/property.hxx                                              |    2 
 forms/source/inc/propertybaghelper.hxx                                     |    3 +
 forms/source/richtext/richtextengine.hxx                                   |    3 +
 forms/source/richtext/richtextunowrapper.hxx                               |    3 +
 forms/source/richtext/rtattributehandler.hxx                               |    3 +
 forms/source/richtext/rtattributes.hxx                                     |    3 +
 forms/source/richtext/textattributelistener.hxx                            |    6 ++
 formula/inc/formula/ExternalReferenceHelper.hxx                            |    3 +
 formula/inc/formula/IControlReferenceHandler.hxx                           |    3 +
 formula/inc/formula/IFunctionDescription.hxx                               |   18 ++++++
 formula/source/ui/dlg/ControlHelper.hxx                                    |    2 
 formula/source/ui/dlg/formula.cxx                                          |    2 
 fpicker/source/office/pickercallbacks.hxx                                  |    6 ++
 framework/inc/framework/iguard.hxx                                         |    3 +
 framework/inc/framework/imutex.hxx                                         |    2 
 framework/inc/framework/undomanagerhelper.hxx                              |    6 ++
 framework/inc/helper/ilayoutnotifications.hxx                              |    3 +
 framework/inc/threadhelp/igate.h                                           |    2 
 framework/inc/threadhelp/irwlock.h                                         |    2 
 framework/inc/threadhelp/itransactionmanager.h                             |    2 
 framework/inc/uielement/comboboxtoolbarcontroller.hxx                      |    3 +
 framework/inc/uielement/dropdownboxtoolbarcontroller.hxx                   |    2 
 framework/inc/uielement/edittoolbarcontroller.hxx                          |    3 +
 framework/inc/uielement/spinfieldtoolbarcontroller.hxx                     |    5 +
 framework/source/inc/accelerators/istoragelistener.hxx                     |    3 +
 javaunohelper/cppumaker/Makefile                                           |    2 
 libcmis/libcmis-0.1.0-non-virtual-dtor.patch                               |   11 +++
 libcmis/makefile.mk                                                        |    1 
 linguistic/inc/iprcache.hxx                                                |    3 +
 linguistic/source/defs.hxx                                                 |    3 +
 oox/inc/oox/drawingml/customshapeproperties.hxx                            |    1 
 oox/inc/oox/mathml/export.hxx                                              |    6 +-
 oox/inc/oox/mathml/import.hxx                                              |    6 +-
 reportdesign/inc/ReportVisitor.hxx                                         |    3 +
 reportdesign/source/filter/xml/xmlReportElementBase.hxx                    |    3 +
 reportdesign/source/ui/inc/CondFormat.hxx                                  |    3 +
 reportdesign/source/ui/inc/MarkedSection.hxx                               |    3 +
 sal/inc/rtl/ref.hxx                                                        |    4 +
 sc/inc/filter.hxx                                                          |    3 +
 sc/inc/scabstdlg.hxx                                                       |    3 +
 sc/source/core/tool/interpr3.cxx                                           |   15 +++++
 sc/source/filter/inc/exp_op.hxx                                            |    2 
 sc/source/filter/inc/ftools.hxx                                            |    1 
 sc/source/ui/attrdlg/scdlgfact.hxx                                         |    2 
 sc/source/ui/docshell/impex.cxx                                            |    1 
 sc/source/ui/inc/dpgroupdlg.hxx                                            |    7 ++
 sc/source/ui/vba/vbarange.cxx                                              |    6 ++
 sd/inc/CustomAnimationEffect.hxx                                           |    3 +
 sd/inc/sdabstdlg.hxx                                                       |    3 +
 sd/source/ui/dlg/sddlgfact.hxx                                             |    2 
 sd/source/ui/inc/ViewShellBase.hxx                                         |    3 +
 sd/source/ui/inc/taskpane/ILayoutableWindow.hxx                            |    3 +
 sd/source/ui/inc/tools/AsynchronousTask.hxx                                |    3 +
 sd/source/ui/slidesorter/cache/SlsBitmapCompressor.hxx                     |    6 ++
 sd/source/ui/slidesorter/inc/cache/SlsCacheContext.hxx                     |    2 
 sd/source/ui/slidesorter/inc/model/SlsEnumeration.hxx                      |    2 
 sd/source/ui/slidesorter/inc/view/SlsILayerPainter.hxx                     |    4 +
 sd/source/ui/slidesorter/view/SlsInsertAnimator.cxx                        |    3 +
 sd/source/ui/toolpanel/controls/MasterPageContainerFiller.hxx              |    3 +
 sd/source/ui/toolpanel/controls/MasterPageContainerProviders.hxx           |    6 ++
 sd/source/ui/toolpanel/controls/MasterPageContainerQueue.hxx               |    6 +-
 sdext/source/pdfimport/tree/treevisiting.hxx                               |    3 +
 sdext/source/presenter/PresenterTimer.hxx                                  |    6 +-
 sdext/source/presenter/PresenterViewFactory.hxx                            |    2 
 sfx2/inc/sfx2/docmacromode.hxx                                             |    3 +
 sfx2/inc/sfx2/docstoragemodifylistener.hxx                                 |    3 +
 sfx2/inc/sfx2/itemwrapper.hxx                                              |    6 ++
 sfx2/inc/sfx2/sfxstatuslistener.hxx                                        |    3 +
 sfx2/inc/sfx2/taskpane.hxx                                                 |    6 ++
 sfx2/inc/sfx2/templdlg.hxx                                                 |    3 +
 sfx2/source/doc/docundomanager.cxx                                         |    2 
 sfx2/source/inc/templdgi.hxx                                               |    1 
 slideshow/source/inc/doctreenodesupplier.hxx                               |    3 +
 slideshow/source/inc/hyperlinkarea.hxx                                     |    3 +
 slideshow/source/inc/hyperlinkhandler.hxx                                  |    3 +
 slideshow/source/inc/pauseeventhandler.hxx                                 |    3 +
 slideshow/source/inc/screenupdater.hxx                                     |    8 ++
 slideshow/source/inc/slide.hxx                                             |    3 +
 solenv/gbuild/UnoApiTarget.mk                                              |    2 
 solenv/gbuild/platform/unxgcc.mk                                           |   21 ++++---
 solenv/inc/unxgcc.mk                                                       |   14 ++++
 starmath/inc/visitors.hxx                                                  |   14 ++++
 store/inc/store/store.hxx                                                  |    3 +
 store/source/lockbyte.hxx                                                  |    3 +
 store/source/object.hxx                                                    |    3 +
 store/source/storbase.hxx                                                  |    3 +
 store/source/storcach.hxx                                                  |    3 +
 svl/inc/svl/itempool.hxx                                                   |    3 +
 svl/inc/svl/undo.hxx                                                       |    3 +
 svtools/inc/svtools/accessiblefactory.hxx                                  |    3 +
 svtools/inc/svtools/accessibletable.hxx                                    |    6 ++
 svtools/inc/svtools/accessibletableprovider.hxx                            |    9 +++
 svtools/inc/svtools/table/tablesort.hxx                                    |    3 +
 svtools/inc/svtools/toolpanel/toolpaneldeck.hxx                            |    6 ++
 svtools/inc/svtools/wizardmachine.hxx                                      |    3 +
 svtools/source/contnr/contentenumeration.hxx                               |    6 ++
 svtools/source/contnr/fileview.cxx                                         |    3 +
 svtools/source/toolpanel/paneltabbar.cxx                                   |    5 +
 svx/inc/svx/IAccessibleViewForwarderListener.hxx                           |    3 +
 svx/inc/svx/fmdmod.hxx                                                     |    2 
 svx/inc/svx/gridctrl.hxx                                                   |    3 +
 svx/inc/svx/ipolypolygoneditorcontroller.hxx                               |    3 +
 svx/inc/svx/sdrobjectuser.hxx                                              |    3 +
 svx/inc/svx/sdrpageuser.hxx                                                |    3 +
 svx/inc/svx/svdetc.hxx                                                     |    4 +
 svx/inc/svx/svdobj.hxx                                                     |    3 +
 svx/inc/svx/unomaster.hxx                                                  |    3 +
 svx/inc/svx/unomod.hxx                                                     |    3 +
 svx/source/inc/docrecovery.hxx                                             |    3 +
 svx/source/inc/fmslotinvalidator.hxx                                       |    3 +
 svx/source/inc/fmtextcontrolshell.hxx                                      |    6 ++
 svx/source/inc/formcontrolling.hxx                                         |    3 +
 svx/source/inc/formdispatchinterceptor.hxx                                 |    7 +-
 svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx                   |    9 +++
 svx/source/svdraw/svdetc.cxx                                               |    1 
 svx/source/svdraw/svdhdl.cxx                                               |    1 
 svx/source/svdraw/svdmark.cxx                                              |    4 +
 svx/source/table/celltypes.hxx                                             |    3 +
 svx/source/table/tablemodel.hxx                                            |    3 +
 sw/inc/TextCursorHelper.hxx                                                |    3 +
 sw/inc/swabstdlg.hxx                                                       |    3 +
 sw/inc/swcrsr.hxx                                                          |    3 +
 sw/inc/unocoll.hxx                                                         |    2 
 sw/source/core/access/acctable.cxx                                         |    5 +
 sw/source/core/crsr/findcoll.cxx                                           |    1 
 sw/source/core/layout/dbg_lay.cxx                                          |    4 +
 sw/source/core/txtnode/fntcap.cxx                                          |    9 ++-
 sw/source/ui/dbui/mmgreetingspage.hxx                                      |    5 +
 sw/source/ui/dialog/swdlgfact.hxx                                          |    2 
 test/inc/test/container/xindexaccess.hxx                                   |    2 
 test/inc/test/sheet/cellproperties.hxx                                     |    3 +
 test/inc/test/sheet/datapilotfield.hxx                                     |    3 +
 test/inc/test/sheet/xcellrangedata.hxx                                     |    3 +
 test/inc/test/sheet/xcellrangereferrer.hxx                                 |    3 +
 test/inc/test/sheet/xcellrangesquery.hxx                                   |    2 
 test/inc/test/sheet/xdatabaserange.hxx                                     |    3 +
 test/inc/test/sheet/xdatapilotdescriptor.hxx                               |    4 +
 test/inc/test/sheet/xdatapilotfieldgrouping.hxx                            |    3 +
 test/inc/test/sheet/xnamedrange.hxx                                        |    2 
 test/inc/test/sheet/xspreadsheetdocument.hxx                               |    4 +
 test/inc/test/util/xreplaceable.hxx                                        |    3 +
 toolkit/inc/toolkit/helper/accessiblefactory.hxx                           |    3 +
 tools/source/generic/poly.cxx                                              |    7 ++
 ucb/source/ucp/file/filnot.hxx                                             |    3 +
 ucb/source/ucp/ftp/ftpcfunc.hxx                                            |    4 +
 ucb/source/ucp/ftp/ftphandleprovider.hxx                                   |    3 +
 ucb/source/ucp/ftp/ftpstrcont.hxx                                          |    5 +
 ucb/source/ucp/ftp/ftpurl.hxx                                              |    5 +
 ucb/source/ucp/tdoc/tdoc_docmgr.hxx                                        |    3 +
 unotest/inc/unotest/filters-test.hxx                                       |    2 
 unotools/inc/unotools/desktopterminationobserver.hxx                       |    3 +
 vbahelper/inc/vbahelper/vbapropvalue.hxx                                   |    3 +
 vcl/headless/svpframe.cxx                                                  |    1 
 vcl/inc/textlayout.hxx                                                     |    3 +
 vcl/inc/vcl/ImageListProvider.hxx                                          |    3 +
 vcl/inc/vcl/apptypes.hxx                                                   |    2 
 vcl/inc/vcl/fontmanager.hxx                                                |    3 +
 vcl/inc/vcl/mnemonicengine.hxx                                             |    3 +
 vcl/inc/vcl/quickselectionengine.hxx                                       |    3 +
 vcl/inc/vcl/svapp.hxx                                                      |    3 +
 vcl/inc/vcl/unowrap.hxx                                                    |    3 +
 vcl/inc/vcl/vclevent.hxx                                                   |    3 +
 vcl/unx/generic/dtrans/X11_selection.hxx                                   |    3 +
 vcl/unx/gtk/window/gtkframe.cxx                                            |    3 +
 writerfilter/inc/resourcemodel/TableManager.hxx                            |    3 +
 writerfilter/inc/resourcemodel/TagLogger.hxx                               |    3 +
 writerfilter/inc/resourcemodel/WW8ResourceModel.hxx                        |   29 +++++-----
 writerfilter/source/doctok/WW8DocumentImpl.hxx                             |    2 
 writerfilter/source/doctok/WW8ResourceModelImpl.hxx                        |    4 -
 writerfilter/source/rtftok/rtfsprm.hxx                                     |    1 
 xmlhelp/source/cxxhelp/inc/util/CompressorIterator.hxx                     |    3 -
 xmloff/inc/xmloff/XMLSettingsExportContext.hxx                             |    2 
 xmloff/inc/xmloff/settingsstore.hxx                                        |    3 +
 xmloff/source/forms/callbacks.hxx                                          |    9 +++
 269 files changed, 972 insertions(+), 63 deletions(-)

New commits:
commit 6e67c03dc0225fc66343546b14e902b9d238b1a3
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Wed Mar 14 13:27:56 2012 +0100

    Enable -Wnon-virtual-dtor for GCC 4.6
    
    ...which has the necessary features to support it.
    
    Change a lot of classes to either contain a protected non-virtual dtor
    (which is backwards compatible, so even works for cppumaker-generated
    UNO headers) or a public virtual one.
    
    cppuhelper/propertysetmixin.hxx still needs to disable the warning, as
    the relevant class has a non-virtual dtor but friends, which would still
    cause GCC to warn.
    
    Includes a patch for libcmis, intended to be upstreamed.

diff --git a/basctl/source/basicide/documentenumeration.hxx b/basctl/source/basicide/documentenumeration.hxx
index 6778c67..d328787 100644
--- a/basctl/source/basicide/documentenumeration.hxx
+++ b/basctl/source/basicide/documentenumeration.hxx
@@ -62,6 +62,9 @@ namespace basctl { namespace docs {
     {
     public:
         virtual bool    includeDocument( const DocumentDescriptor& _rDocument ) const = 0;
+
+    protected:
+        ~IDocumentDescriptorFilter() {}
     };
 
     //====================================================================
diff --git a/basctl/source/basicide/scriptdocument.cxx b/basctl/source/basicide/scriptdocument.cxx
index 97124f2..a3bde88 100644
--- a/basctl/source/basicide/scriptdocument.cxx
+++ b/basctl/source/basicide/scriptdocument.cxx
@@ -147,6 +147,8 @@ namespace basctl
         public:
             FilterDocuments( bool _bFilterInvisible ) : m_bFilterInvisible( _bFilterInvisible ) { }
 
+            virtual ~FilterDocuments() {}
+
             virtual bool    includeDocument( const docs::DocumentDescriptor& _rDocument ) const;
 
         private:
diff --git a/basebmp/inc/basebmp/bitmapdevice.hxx b/basebmp/inc/basebmp/bitmapdevice.hxx
index ff15ad8..5d67344 100644
--- a/basebmp/inc/basebmp/bitmapdevice.hxx
+++ b/basebmp/inc/basebmp/bitmapdevice.hxx
@@ -67,6 +67,9 @@ struct IBitmapDeviceDamageTracker
 {
     /// gets called when said region is clobbered
     virtual void damaged(const basegfx::B2IBox& rDamageRect) const = 0;
+
+protected:
+    ~IBitmapDeviceDamageTracker() {}
 };
 
 /** Definition of BitmapDevice interface
diff --git a/basic/inc/basic/basicmanagerrepository.hxx b/basic/inc/basic/basicmanagerrepository.hxx
index 0b25412..bf7d8a8 100644
--- a/basic/inc/basic/basicmanagerrepository.hxx
+++ b/basic/inc/basic/basicmanagerrepository.hxx
@@ -65,6 +65,9 @@ namespace basic
             const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XModel >& _rxForDocument,
             BasicManager& _rBasicManager
         ) = 0;
+
+    protected:
+        ~BasicManagerCreationListener() {}
     };
 
     //====================================================================
diff --git a/basic/inc/basic/basmgr.hxx b/basic/inc/basic/basmgr.hxx
index 04820ad..d7b1c3f 100644
--- a/basic/inc/basic/basmgr.hxx
+++ b/basic/inc/basic/basmgr.hxx
@@ -87,6 +87,9 @@ public:
     virtual String getLibraryPassword( const String& rLibraryName ) = 0;
     virtual void clearLibraryPassword( const String& rLibraryName ) = 0;
     virtual sal_Bool hasLibraryPassword( const String& rLibraryName ) = 0;
+
+protected:
+    ~OldBasicPassword() {}
 };
 
 struct LibraryContainerInfo
diff --git a/canvas/inc/canvas/base/sprite.hxx b/canvas/inc/canvas/base/sprite.hxx
index 38a2270..161551b 100644
--- a/canvas/inc/canvas/base/sprite.hxx
+++ b/canvas/inc/canvas/base/sprite.hxx
@@ -99,6 +99,9 @@ namespace canvas
         /** Query sprite priority
          */
         virtual double              getPriority() const = 0;
+
+    protected:
+        ~Sprite() {}
     };
 
     /** Functor providing a StrictWeakOrdering for sprite references
diff --git a/canvas/inc/canvas/base/spritesurface.hxx b/canvas/inc/canvas/base/spritesurface.hxx
index c60099f..6ff1c3c 100644
--- a/canvas/inc/canvas/base/spritesurface.hxx
+++ b/canvas/inc/canvas/base/spritesurface.hxx
@@ -68,6 +68,9 @@ namespace canvas
         virtual void updateSprite( const Sprite::Reference&     rSprite,
                                    const ::basegfx::B2DPoint&   rPos,
                                    const ::basegfx::B2DRange&   rUpdateArea ) = 0;
+
+    protected:
+        ~SpriteSurface() {}
     };
 }
 
diff --git a/canvas/source/cairo/cairo_sprite.hxx b/canvas/source/cairo/cairo_sprite.hxx
index b5ecb85..ca96f37 100644
--- a/canvas/source/cairo/cairo_sprite.hxx
+++ b/canvas/source/cairo/cairo_sprite.hxx
@@ -66,6 +66,9 @@ namespace cairocanvas
         virtual void redraw( const ::cairo::CairoSharedPtr& pCairo,
                              const ::basegfx::B2DPoint&     rOrigOutputPos,
                              bool                           bBufferedUpdate ) const = 0;
+
+    protected:
+        ~Sprite() {}
     };
 }
 
diff --git a/canvas/source/null/sprite.hxx b/canvas/source/null/sprite.hxx
index 56a38be..dc25d23 100644
--- a/canvas/source/null/sprite.hxx
+++ b/canvas/source/null/sprite.hxx
@@ -42,6 +42,9 @@ namespace nullcanvas
         /** Redraw sprite
          */
         virtual void redraw() const = 0;
+
+    protected:
+        ~Sprite() {}
     };
 }
 
diff --git a/canvas/source/vcl/sprite.hxx b/canvas/source/vcl/sprite.hxx
index b2713eb..b86137d 100644
--- a/canvas/source/vcl/sprite.hxx
+++ b/canvas/source/vcl/sprite.hxx
@@ -66,6 +66,9 @@ namespace vclcanvas
         virtual void redraw( OutputDevice&              rOutDev,
                              const ::basegfx::B2DPoint& rPos,
                              bool                       bBufferedUpdate ) const = 0;
+
+    protected:
+        ~Sprite() {}
     };
 }
 
diff --git a/chart2/source/controller/chartapiwrapper/ReferenceSizePropertyProvider.hxx b/chart2/source/controller/chartapiwrapper/ReferenceSizePropertyProvider.hxx
index 1740132..b6ae4c6 100644
--- a/chart2/source/controller/chartapiwrapper/ReferenceSizePropertyProvider.hxx
+++ b/chart2/source/controller/chartapiwrapper/ReferenceSizePropertyProvider.hxx
@@ -40,6 +40,9 @@ public:
     virtual void updateReferenceSize() = 0;
     virtual ::com::sun::star::uno::Any getReferenceSize() = 0;
     virtual ::com::sun::star::awt::Size getCurrentSizeForReference() = 0;
+
+protected:
+    ~ReferenceSizePropertyProvider() {}
 };
 
 } //  namespace wrapper
diff --git a/chart2/source/controller/inc/DrawViewWrapper.hxx b/chart2/source/controller/inc/DrawViewWrapper.hxx
index fda4898..fb1ce41 100644
--- a/chart2/source/controller/inc/DrawViewWrapper.hxx
+++ b/chart2/source/controller/inc/DrawViewWrapper.hxx
@@ -49,6 +49,9 @@ class MarkHandleProvider
 public:
     virtual bool getMarkHandles( SdrHdlList& rHdlList ) =0;
     virtual bool getFrameDragSingles() =0;
+
+protected:
+    ~MarkHandleProvider() {}
 };
 
 class DrawViewWrapper : public E3dView
diff --git a/chart2/source/controller/inc/RangeSelectionListener.hxx b/chart2/source/controller/inc/RangeSelectionListener.hxx
index d0a4f97..7088649 100644
--- a/chart2/source/controller/inc/RangeSelectionListener.hxx
+++ b/chart2/source/controller/inc/RangeSelectionListener.hxx
@@ -41,6 +41,9 @@ class RangeSelectionListenerParent
 public:
     virtual void listeningFinished( const ::rtl::OUString & rNewRange ) = 0;
     virtual void disposingRangeSelection() = 0;
+
+protected:
+    ~RangeSelectionListenerParent() {}
 };
 
 // ----------------------------------------
diff --git a/chart2/source/controller/inc/TabPageNotifiable.hxx b/chart2/source/controller/inc/TabPageNotifiable.hxx
index e34de6e..b3771db 100644
--- a/chart2/source/controller/inc/TabPageNotifiable.hxx
+++ b/chart2/source/controller/inc/TabPageNotifiable.hxx
@@ -44,6 +44,9 @@ class TabPageNotifiable
 public:
     virtual void setInvalidPage( TabPage * pTabPage ) = 0;
     virtual void setValidPage( TabPage * pTabPage ) = 0;
+
+protected:
+    ~TabPageNotifiable() {}
 };
 
 } //  namespace chart
diff --git a/chart2/source/inc/ConfigItemListener.hxx b/chart2/source/inc/ConfigItemListener.hxx
index 82a23bb..f29e4ea 100644
--- a/chart2/source/inc/ConfigItemListener.hxx
+++ b/chart2/source/inc/ConfigItemListener.hxx
@@ -38,6 +38,9 @@ class OOO_DLLPUBLIC_CHARTTOOLS ConfigItemListener
 {
 public:
     virtual void notify( const ::rtl::OUString & rPropertyName ) = 0;
+
+protected:
+    ~ConfigItemListener() {}
 };
 
 } //  namespace chart
diff --git a/chart2/source/inc/chartview/ExplicitValueProvider.hxx b/chart2/source/inc/chartview/ExplicitValueProvider.hxx
index 8d94419..cf20374 100644
--- a/chart2/source/inc/chartview/ExplicitValueProvider.hxx
+++ b/chart2/source/inc/chartview/ExplicitValueProvider.hxx
@@ -109,6 +109,9 @@ public:
     static sal_Int32 getExplicitPercentageNumberFormatKeyForDataLabel(
             const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& xSeriesOrPointProp
             , const ::com::sun::star::uno::Reference< ::com::sun::star::util::XNumberFormatsSupplier >& xNumberFormatsSupplier );
+
+protected:
+    ~ExplicitValueProvider() {}
 };
 
 //.............................................................................
diff --git a/chart2/source/model/main/UndoManager.cxx b/chart2/source/model/main/UndoManager.cxx
index e5e6c46..95095db 100644
--- a/chart2/source/model/main/UndoManager.cxx
+++ b/chart2/source/model/main/UndoManager.cxx
@@ -192,6 +192,7 @@ namespace chart
         class DummyMutex : public ::framework::IMutex
         {
         public:
+            virtual ~DummyMutex() {}
             virtual void acquire() { }
             virtual void release() { }
         };
diff --git a/chart2/source/view/inc/LegendEntryProvider.hxx b/chart2/source/view/inc/LegendEntryProvider.hxx
index fd2c41c..52b4a4b 100644
--- a/chart2/source/view/inc/LegendEntryProvider.hxx
+++ b/chart2/source/view/inc/LegendEntryProvider.hxx
@@ -89,6 +89,9 @@ public:
             const ::com::sun::star::uno::Reference<
                 ::com::sun::star::uno::XComponentContext >& xContext
                 ) = 0;
+
+protected:
+    ~LegendEntryProvider() {}
 };
 
 } //  namespace chart
diff --git a/chart2/source/view/inc/MinimumAndMaximumSupplier.hxx b/chart2/source/view/inc/MinimumAndMaximumSupplier.hxx
index b84fba7..e0c5bd5 100644
--- a/chart2/source/view/inc/MinimumAndMaximumSupplier.hxx
+++ b/chart2/source/view/inc/MinimumAndMaximumSupplier.hxx
@@ -65,6 +65,9 @@ public:
     //return a constant out of ::com::sun::star::chart::TimeUnit that allows to display the smallest distance between occuring dates
     virtual long calculateTimeResolutionOnXAxis() = 0;
     virtual void setTimeResolutionOnXAxis( long nTimeResolution, const Date& rNullDate ) = 0;
+
+protected:
+    ~MinimumAndMaximumSupplier() {}
 };
 
 class MergedMinimumAndMaximumSupplier : public MinimumAndMaximumSupplier
diff --git a/codemaker/source/cppumaker/cpputype.cxx b/codemaker/source/cppumaker/cpputype.cxx
index 763441b..7c0326d 100644
--- a/codemaker/source/cppumaker/cpputype.cxx
+++ b/codemaker/source/cppumaker/cpputype.cxx
@@ -1412,8 +1412,13 @@ void InterfaceType::dumpDeclaration(FileStream& o)
 
     o << "\n" << indent()
       << ("static inline ::com::sun::star::uno::Type const & SAL_CALL"
-          " static_type(void * = 0);\n");
-
+          " static_type(void * = 0);\n\n");
+    dec();
+    o << "protected:\n";
+    inc();
+    o << indent() << "~" << m_name
+      << ("() throw () {} // avoid warnings about virtual members and"
+          " non-virtual dtor\n");
     dec();
     o << "};\n\n";
 }
diff --git a/comphelper/inc/comphelper/accessiblecomponenthelper.hxx b/comphelper/inc/comphelper/accessiblecomponenthelper.hxx
index 582d77a..25e5bdd 100644
--- a/comphelper/inc/comphelper/accessiblecomponenthelper.hxx
+++ b/comphelper/inc/comphelper/accessiblecomponenthelper.hxx
@@ -77,7 +77,10 @@ namespace comphelper
 
     struct OAccessibleComponentHelper_Base :
         public ::cppu::ImplHelper1< ::com::sun::star::accessibility::XAccessibleComponent >
-    {};
+    {
+    protected:
+        ~OAccessibleComponentHelper_Base() {}
+    };
 
     /** a helper class for implementing an AccessibleContext which at the same time
         supports an XAccessibleComponent interface.
diff --git a/comphelper/inc/comphelper/accessibleselectionhelper.hxx b/comphelper/inc/comphelper/accessibleselectionhelper.hxx
index 972113f..73b446f 100644
--- a/comphelper/inc/comphelper/accessibleselectionhelper.hxx
+++ b/comphelper/inc/comphelper/accessibleselectionhelper.hxx
@@ -56,6 +56,8 @@ namespace comphelper
 
         OCommonAccessibleSelection();
 
+        ~OCommonAccessibleSelection();
+
     protected:
 
         // access to context - still waiting to be overwritten
diff --git a/comphelper/inc/comphelper/accessiblewrapper.hxx b/comphelper/inc/comphelper/accessiblewrapper.hxx
index d091f9f..48aeed1 100644
--- a/comphelper/inc/comphelper/accessiblewrapper.hxx
+++ b/comphelper/inc/comphelper/accessiblewrapper.hxx
@@ -61,7 +61,10 @@ namespace comphelper
 
     struct OAccessibleWrapper_Base :
         public ::cppu::ImplHelper1 < ::com::sun::star::accessibility::XAccessible >
-    {};
+    {
+    protected:
+        ~OAccessibleWrapper_Base() {}
+    };
 
     /** a class which aggregates a proxy for an XAccessible, and wrapping the context returned by this
         XAccessible.
diff --git a/comphelper/inc/comphelper/asyncnotification.hxx b/comphelper/inc/comphelper/asyncnotification.hxx
index 0ca35a3..eca91a1 100644
--- a/comphelper/inc/comphelper/asyncnotification.hxx
+++ b/comphelper/inc/comphelper/asyncnotification.hxx
@@ -87,6 +87,9 @@ namespace comphelper
 
         virtual void SAL_CALL acquire() = 0;
         virtual void SAL_CALL release() = 0;
+
+    protected:
+        ~IEventProcessor() {}
     };
 
     //====================================================================
diff --git a/comphelper/inc/comphelper/componentbase.hxx b/comphelper/inc/comphelper/componentbase.hxx
index db3e558..7c82ea3 100644
--- a/comphelper/inc/comphelper/componentbase.hxx
+++ b/comphelper/inc/comphelper/componentbase.hxx
@@ -71,6 +71,8 @@ namespace comphelper
         {
         }
 
+        ~ComponentBase() {}
+
         /** marks the instance as initialized
 
             Subsequent instantiations of a ComponentMethodGuard won't throw the NotInitializedException now.
diff --git a/comphelper/inc/comphelper/embeddedobjectcontainer.hxx b/comphelper/inc/comphelper/embeddedobjectcontainer.hxx
index 8d1aab9..d58d288 100644
--- a/comphelper/inc/comphelper/embeddedobjectcontainer.hxx
+++ b/comphelper/inc/comphelper/embeddedobjectcontainer.hxx
@@ -52,6 +52,9 @@ namespace comphelper
         virtual com::sun::star::uno::Reference < com::sun::star::embed::XStorage > getStorage() const = 0;
         virtual ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler > getInteractionHandler() const = 0;
         virtual bool isEnableSetModified() const = 0;
+
+    protected:
+        ~IEmbeddedHelper() {}
     };
 
 struct EmbedImpl;
diff --git a/comphelper/inc/comphelper/propagg.hxx b/comphelper/inc/comphelper/propagg.hxx
index 6286e9d..b6b2df6 100644
--- a/comphelper/inc/comphelper/propagg.hxx
+++ b/comphelper/inc/comphelper/propagg.hxx
@@ -83,6 +83,9 @@ public:
                                 preferences for the given property
     */
     virtual sal_Int32           getPreferedPropertyId(const ::rtl::OUString& _rName) = 0;
+
+protected:
+    ~IPropertyInfoService() {}
 };
 
 /**
diff --git a/comphelper/inc/comphelper/serviceinfohelper.hxx b/comphelper/inc/comphelper/serviceinfohelper.hxx
index e742c93..39c95ee 100644
--- a/comphelper/inc/comphelper/serviceinfohelper.hxx
+++ b/comphelper/inc/comphelper/serviceinfohelper.hxx
@@ -51,6 +51,9 @@ public:
     // helper
     static void addToSequence( ::com::sun::star::uno::Sequence< ::rtl::OUString >& rSeq, sal_uInt16 nServices, /* sal_Char* */... ) throw();
     static sal_Bool SAL_CALL supportsService( const ::rtl::OUString& ServiceName, const ::com::sun::star::uno::Sequence< ::rtl::OUString >& SupportedServices ) throw();
+
+protected:
+    ~ServiceInfoHelper() {}
 };
 
 }
diff --git a/comphelper/source/misc/accessibleselectionhelper.cxx b/comphelper/source/misc/accessibleselectionhelper.cxx
index 44fb4cb..4b77e4f 100644
--- a/comphelper/source/misc/accessibleselectionhelper.cxx
+++ b/comphelper/source/misc/accessibleselectionhelper.cxx
@@ -46,6 +46,8 @@ namespace comphelper
     {
     }
 
+    OCommonAccessibleSelection::~OCommonAccessibleSelection() {}
+
     //--------------------------------------------------------------------
     void SAL_CALL OCommonAccessibleSelection::selectAccessibleChild( sal_Int32 nChildIndex ) throw (IndexOutOfBoundsException, RuntimeException)
     {
diff --git a/connectivity/inc/connectivity/IParseContext.hxx b/connectivity/inc/connectivity/IParseContext.hxx
index 16bae34..1724b73 100644
--- a/connectivity/inc/connectivity/IParseContext.hxx
+++ b/connectivity/inc/connectivity/IParseContext.hxx
@@ -102,6 +102,9 @@ namespace connectivity
             <p>if this is not overridden by derived classes, it returns the static default locale.</p>
         */
         virtual ::com::sun::star::lang::Locale getPreferredLocale( ) const = 0;
+
+    protected:
+        ~IParseContext() {}
     };
 }
 
diff --git a/connectivity/inc/connectivity/SQLStatementHelper.hxx b/connectivity/inc/connectivity/SQLStatementHelper.hxx
index c64268d..daf1ddc 100644
--- a/connectivity/inc/connectivity/SQLStatementHelper.hxx
+++ b/connectivity/inc/connectivity/SQLStatementHelper.hxx
@@ -42,6 +42,9 @@ namespace dbtools
     {
     public:
         virtual void addComment(const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& descriptor,::rtl::OUStringBuffer& _rOut) = 0;
+
+    protected:
+        ~ISQLStatementHelper() {}
     };
 
 //.........................................................................
diff --git a/connectivity/inc/connectivity/sdbcx/IRefreshable.hxx b/connectivity/inc/connectivity/sdbcx/IRefreshable.hxx
index 769ed21..318f006 100644
--- a/connectivity/inc/connectivity/sdbcx/IRefreshable.hxx
+++ b/connectivity/inc/connectivity/sdbcx/IRefreshable.hxx
@@ -39,18 +39,27 @@ namespace connectivity
         {
         public:
             virtual void refreshGroups() = 0;
+
+        protected:
+            ~IRefreshableGroups() {}
         };
 
         class OOO_DLLPUBLIC_DBTOOLS SAL_NO_VTABLE IRefreshableUsers
         {
         public:
             virtual void refreshUsers() = 0;
+
+        protected:
+            ~IRefreshableUsers() {}
         };
 
         class OOO_DLLPUBLIC_DBTOOLS SAL_NO_VTABLE IRefreshableColumns
         {
         public:
             virtual void refreshColumns()   = 0;
+
+        protected:
+            ~IRefreshableColumns() {}
         };
     }
 }
diff --git a/connectivity/inc/connectivity/sdbcx/VCollection.hxx b/connectivity/inc/connectivity/sdbcx/VCollection.hxx
index c3262b4..6db38b2 100644
--- a/connectivity/inc/connectivity/sdbcx/VCollection.hxx
+++ b/connectivity/inc/connectivity/sdbcx/VCollection.hxx
@@ -73,6 +73,7 @@ namespace connectivity
         class OOO_DLLPUBLIC_DBTOOLS SAL_NO_VTABLE IObjectCollection
         {
         public:
+            virtual ~IObjectCollection();
             virtual void reserve(size_t nLength) = 0;
             virtual bool exists(const ::rtl::OUString& _sName ) = 0;
             virtual bool empty() = 0;
diff --git a/connectivity/inc/connectivity/virtualdbtools.hxx b/connectivity/inc/connectivity/virtualdbtools.hxx
index fe023e2..cf42a52 100644
--- a/connectivity/inc/connectivity/virtualdbtools.hxx
+++ b/connectivity/inc/connectivity/virtualdbtools.hxx
@@ -226,6 +226,9 @@ namespace connectivity
                 const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& _rxComponent,
                 ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >& _rxActualConnection
             ) = 0;
+
+        protected:
+            ~IDataAccessTools() {}
         };
 
         //================================================================
@@ -244,6 +247,9 @@ namespace connectivity
             virtual sal_Int32   getSupportedTextEncodings(
                 ::std::vector< rtl_TextEncoding >& /* [out] */ _rEncs
             ) const = 0;
+
+        protected:
+            ~IDataAccessCharSet() {}
         };
 
         //================================================================
@@ -272,6 +278,9 @@ namespace connectivity
                 const ::com::sun::star::lang::Locale& _rLocale,
                 const ::com::sun::star::util::Date& _rNullDate
             ) const = 0;
+
+        protected:
+            ~IDataAccessTypeConversion() {}
         };
 
         //================================================================
@@ -295,6 +304,9 @@ namespace connectivity
                 const sal_Char _cDecSeparator,
                 const IParseContext* _pContext
             ) const = 0;
+
+        protected:
+            ~ISQLParseNode() {}
         };
 
         //================================================================
@@ -313,6 +325,9 @@ namespace connectivity
             ) const = 0;
 
             virtual const IParseContext& getContext() const = 0;
+
+        protected:
+            ~ISQLParser() {}
         };
 
         //================================================================
@@ -344,6 +359,9 @@ namespace connectivity
                 const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XRowSet >& _rxRowSet,
                 const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxColumn
             ) = 0;
+
+        protected:
+            ~IDataAccessToolsFactory() {}
         };
 
     //....................................................................
diff --git a/connectivity/inc/connectivity/warningscontainer.hxx b/connectivity/inc/connectivity/warningscontainer.hxx
index 273390c..937fd8b 100644
--- a/connectivity/inc/connectivity/warningscontainer.hxx
+++ b/connectivity/inc/connectivity/warningscontainer.hxx
@@ -50,6 +50,9 @@ namespace dbtools
         virtual void appendWarning(const ::com::sun::star::sdbc::SQLException& _rWarning) = 0;
         virtual void appendWarning(const ::com::sun::star::sdbc::SQLWarning& _rWarning) = 0;
         virtual void appendWarning(const ::com::sun::star::sdb::SQLContext& _rContext) = 0;
+
+    protected:
+        ~IWarningsContainer() {}
     };
 
     //====================================================================
diff --git a/connectivity/source/drivers/mozab/bootstrap/MNSProfile.cxx b/connectivity/source/drivers/mozab/bootstrap/MNSProfile.cxx
index 00a061c..12d4fa9 100644
--- a/connectivity/source/drivers/mozab/bootstrap/MNSProfile.cxx
+++ b/connectivity/source/drivers/mozab/bootstrap/MNSProfile.cxx
@@ -601,8 +601,10 @@ nsProfile::CreateInstance(nsISupports* aOuter, const nsID& aIID,
 }
 
 //Register profile manager
+#include "pre_include_mozilla.h"
 #include "nsIComponentManager.h"
 #include "nsIComponentRegistrar.h"
+#include "post_include_mozilla.h"
 
 static const nsCID kProfileManagerCID = NS_PROFILE_CID;
 
diff --git a/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx b/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx
index 1678716..98a4a94 100644
--- a/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx
+++ b/connectivity/source/drivers/mozab/bootstrap/MNSProfileDiscover.cxx
@@ -66,9 +66,10 @@
 #include <rmsdef.h>
 #endif
 
+#include "pre_include_mozilla.h"
 #include "nsICharsetConverterManager.h"
 #include "nsIPlatformCharset.h"
-
+#include "post_include_mozilla.h"
 
 #if defined (XP_UNIX)
 #   define USER_ENVIRONMENT_VARIABLE "USER"
diff --git a/connectivity/source/drivers/mozab/mozillasrc/MDatabaseMetaDataHelper.cxx b/connectivity/source/drivers/mozab/mozillasrc/MDatabaseMetaDataHelper.cxx
index 70a6b7b..ebee40a 100644
--- a/connectivity/source/drivers/mozab/mozillasrc/MDatabaseMetaDataHelper.cxx
+++ b/connectivity/source/drivers/mozab/mozillasrc/MDatabaseMetaDataHelper.cxx
@@ -40,7 +40,10 @@
 #include <osl/mutex.hxx>
 #include <osl/conditn.hxx>
 
+#include "pre_include_mozilla.h"
 #include <nsIAbDirFactoryService.h>
+#include "post_include_mozilla.h"
+
 #include <MNSInit.hxx>
 #include <MNameMapper.hxx>
 #include "MNSMozabProxy.hxx"
diff --git a/connectivity/source/drivers/mozab/post_include_mozilla.h b/connectivity/source/drivers/mozab/post_include_mozilla.h
index a63db2b..37fbc9a 100755
--- a/connectivity/source/drivers/mozab/post_include_mozilla.h
+++ b/connectivity/source/drivers/mozab/post_include_mozilla.h
@@ -26,7 +26,9 @@
  *
  ************************************************************************/
 
-#if defined __SUNPRO_CC
+#if defined __GNUC__ && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4)
+#pragma GCC diagnostic pop
+#elif defined __SUNPRO_CC
 #pragma enable_warn
 #elif defined _MSC_VER
 #pragma warning(pop)
diff --git a/connectivity/source/drivers/mozab/pre_include_mozilla.h b/connectivity/source/drivers/mozab/pre_include_mozilla.h
index 7e2c5fe..81e407b 100755
--- a/connectivity/source/drivers/mozab/pre_include_mozilla.h
+++ b/connectivity/source/drivers/mozab/pre_include_mozilla.h
@@ -55,8 +55,9 @@
     #endif
 #endif
 
-#if defined __GNUC__
-    #pragma GCC system_header
+#if defined __GNUC__ && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4)
+    #pragma GCC diagnostic push
+    #pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
 #elif defined __SUNPRO_CC
     #pragma disable_warn
 #elif defined _MSC_VER
diff --git a/connectivity/source/inc/TResultSetHelper.hxx b/connectivity/source/inc/TResultSetHelper.hxx
index 874b9d9..e32e9ed 100644
--- a/connectivity/source/inc/TResultSetHelper.hxx
+++ b/connectivity/source/inc/TResultSetHelper.hxx
@@ -52,6 +52,9 @@ namespace connectivity
         virtual sal_Int32 getDriverPos() const = 0;
         virtual sal_Bool deletedVisible() const = 0;
         virtual sal_Bool isRowDeleted() const = 0;
+
+    protected:
+        ~IResultSetHelper() {}
     };
 }
 
diff --git a/connectivity/source/inc/hsqldb/HConnection.hxx b/connectivity/source/inc/hsqldb/HConnection.hxx
index f86fdb9..1102e7e 100644
--- a/connectivity/source/inc/hsqldb/HConnection.hxx
+++ b/connectivity/source/inc/hsqldb/HConnection.hxx
@@ -52,6 +52,9 @@ namespace connectivity
         public:
             virtual ::osl::Mutex&   getMutex() const = 0;
             virtual void            checkDisposed() const = 0;
+
+        protected:
+            ~IMethodGuardAccess() {}
         };
 
         //==========================================================================
diff --git a/connectivity/source/sdbcx/VCollection.cxx b/connectivity/source/sdbcx/VCollection.cxx
index 66ccb4d..c4f76ee 100644
--- a/connectivity/source/sdbcx/VCollection.cxx
+++ b/connectivity/source/sdbcx/VCollection.cxx
@@ -231,7 +231,8 @@ namespace
         // -----------------------------------------------------------------------------
     };
 }
-// -----------------------------------------------------------------------------
+
+IObjectCollection::~IObjectCollection() {}
 
 IMPLEMENT_SERVICE_INFO(OCollection,"com.sun.star.sdbcx.VContainer" , "com.sun.star.sdbcx.Container")
 
diff --git a/cppu/qa/Makefile b/cppu/qa/Makefile
index 99a7eec..a68567d 100644
--- a/cppu/qa/Makefile
+++ b/cppu/qa/Makefile
@@ -26,11 +26,11 @@
 # instead of those above.
 
 gb_PARTIALBUILD:=T
-include $(GBUILDDIR)/gbuild_simple.mk
+include $(GBUILDDIR)/gbuild.mk
 
 all: qa/cppumaker.flag qa/cppumaker/cppumaker.flag
 
-%/cppumaker.flag: %/cppumaker.rdb
+%/cppumaker.flag: %/cppumaker.rdb $(gb_UnoApiTarget_CPPUMAKERTARGET)
 	$(call gb_Helper_abbreviate_dirs_native, \
 		$(call gb_Helper_execute,cppumaker) -O. -BUCR -C $< $(OUTDIR_FOR_BUILD)/bin/udkapi.rdb)
 	touch $@
diff --git a/cppu/qa/test_unotype.cxx b/cppu/qa/test_unotype.cxx
index 157cfcb..546200a 100644
--- a/cppu/qa/test_unotype.cxx
+++ b/cppu/qa/test_unotype.cxx
@@ -74,9 +74,17 @@ struct DerivedException1: css::uno::Exception {};
 
 struct DerivedException2: css::uno::RuntimeException {};
 
-struct DerivedInterface1: css::uno::XInterface {};
+struct DerivedInterface1: css::uno::XInterface {
+private:
+    ~DerivedInterface1() {}
+        // avoid warnings about virtual members and non-virtual dtor
+};
 
-struct DerivedInterface2: css::uno::XComponentContext {};
+struct DerivedInterface2: css::uno::XComponentContext {
+private:
+    ~DerivedInterface2() {}
+        // avoid warnings about virtual members and non-virtual dtor
+};
 
 class Test: public ::CppUnit::TestFixture {
 public:
diff --git a/cppu/source/threadpool/current.cxx b/cppu/source/threadpool/current.cxx
index f1194c9..87b8c41 100644
--- a/cppu/source/threadpool/current.cxx
+++ b/cppu/source/threadpool/current.cxx
@@ -54,6 +54,9 @@ public:
     virtual void SAL_CALL slot_queryInterface() = 0;
     virtual void SAL_CALL acquire() throw () = 0;
     virtual void SAL_CALL release() throw () = 0;
+protected:
+    ~XInterface() {}
+        // avoid warnings about virtual members and non-virtual dtor
 };
 //--------------------------------------------------------------------------------------------------
 static typelib_InterfaceTypeDescription * get_type_XCurrentContext()
diff --git a/cppuhelper/inc/cppuhelper/implbase.hxx b/cppuhelper/inc/cppuhelper/implbase.hxx
index 34cfed2..85051fb 100644
--- a/cppuhelper/inc/cppuhelper/implbase.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase.hxx
@@ -186,6 +186,7 @@ class SAL_NO_VTABLE SAL_DLLPUBLIC_TEMPLATE ImplHelperBase##N \
     , __PUBLIC_IFC##N \
 { \
 protected: \
+    ~ImplHelperBase##N() throw () {} \
     ClassData & SAL_CALL getClassData( ClassDataBase & s_aCD ) SAL_THROW(()) \
     { \
         ClassData & rCD = * static_cast< ClassData * >( &s_aCD ); \
@@ -221,6 +222,8 @@ public: \
         { return this->getClassData( s_aCD ).getTypes(); } \
     virtual ::com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (::com::sun::star::uno::RuntimeException) \
         { return this->getClassData( s_aCD ).getImplementationId(); } \
+protected: \
+    ~ImplHelper##N() throw () {} \
 }; \
 template< __CLASS_IFC##N > \
 class SAL_NO_VTABLE SAL_DLLPUBLIC_TEMPLATE WeakImplHelper##N \
diff --git a/cppuhelper/inc/cppuhelper/implbase1.hxx b/cppuhelper/inc/cppuhelper/implbase1.hxx
index d4cbeea..c49c916 100644
--- a/cppuhelper/inc/cppuhelper/implbase1.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase1.hxx
@@ -85,6 +85,9 @@ namespace cppu
             { return ImplHelper_getTypes( cd::get() ); }
         virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
             { return ImplHelper_getImplementationId( cd::get() ); }
+
+    protected:
+        ~ImplHelper1() throw () {}
     };
     /** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
         com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase10.hxx b/cppuhelper/inc/cppuhelper/implbase10.hxx
index 1ea06d4..8a51770 100644
--- a/cppuhelper/inc/cppuhelper/implbase10.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase10.hxx
@@ -94,6 +94,9 @@ namespace cppu
             { return ImplHelper_getTypes( cd::get() ); }
         virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
             { return ImplHelper_getImplementationId( cd::get() ); }
+
+    protected:
+        ~ImplHelper10() throw () {}
     };
     /** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
         com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase11.hxx b/cppuhelper/inc/cppuhelper/implbase11.hxx
index bbcd675..4c1a307 100644
--- a/cppuhelper/inc/cppuhelper/implbase11.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase11.hxx
@@ -95,6 +95,9 @@ namespace cppu
             { return ImplHelper_getTypes( cd::get() ); }
         virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
             { return ImplHelper_getImplementationId( cd::get() ); }
+
+    protected:
+        ~ImplHelper11() throw () {}
     };
     /** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
         com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase12.hxx b/cppuhelper/inc/cppuhelper/implbase12.hxx
index 4211abc..934dfbe 100644
--- a/cppuhelper/inc/cppuhelper/implbase12.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase12.hxx
@@ -96,6 +96,9 @@ namespace cppu
             { return ImplHelper_getTypes( cd::get() ); }
         virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
             { return ImplHelper_getImplementationId( cd::get() ); }
+
+    protected:
+        ~ImplHelper12() throw () {}
     };
     /** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
         com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase2.hxx b/cppuhelper/inc/cppuhelper/implbase2.hxx
index 39983d6..b77947a 100644
--- a/cppuhelper/inc/cppuhelper/implbase2.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase2.hxx
@@ -85,6 +85,9 @@ namespace cppu
             { return ImplHelper_getTypes( cd::get() ); }
         virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
             { return ImplHelper_getImplementationId( cd::get() ); }
+
+    protected:
+        ~ImplHelper2() throw () {}
     };
     /** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
         com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase3.hxx b/cppuhelper/inc/cppuhelper/implbase3.hxx
index 0ed901f..88eef99 100644
--- a/cppuhelper/inc/cppuhelper/implbase3.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase3.hxx
@@ -86,6 +86,9 @@ namespace cppu
             { return ImplHelper_getTypes( cd::get() ); }
         virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
             { return ImplHelper_getImplementationId( cd::get() ); }
+
+    protected:
+        ~ImplHelper3() throw () {}
     };
     /** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
         com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase4.hxx b/cppuhelper/inc/cppuhelper/implbase4.hxx
index cbb33be..cb9660c 100644
--- a/cppuhelper/inc/cppuhelper/implbase4.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase4.hxx
@@ -88,6 +88,9 @@ namespace cppu
             { return ImplHelper_getTypes( cd::get() ); }
         virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
             { return ImplHelper_getImplementationId( cd::get() ); }
+
+    protected:
+        ~ImplHelper4() throw () {}
     };
     /** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
         com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase5.hxx b/cppuhelper/inc/cppuhelper/implbase5.hxx
index 86918f5..71446a5 100644
--- a/cppuhelper/inc/cppuhelper/implbase5.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase5.hxx
@@ -89,6 +89,9 @@ namespace cppu
             { return ImplHelper_getTypes( cd::get() ); }
         virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
             { return ImplHelper_getImplementationId( cd::get() ); }
+
+    protected:
+        ~ImplHelper5() throw () {}
     };
     /** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
         com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase6.hxx b/cppuhelper/inc/cppuhelper/implbase6.hxx
index 3e8f5ef..dca9d86 100644
--- a/cppuhelper/inc/cppuhelper/implbase6.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase6.hxx
@@ -90,6 +90,9 @@ namespace cppu
             { return ImplHelper_getTypes( cd::get() ); }
         virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
             { return ImplHelper_getImplementationId( cd::get() ); }
+
+    protected:
+        ~ImplHelper6() throw () {}
     };
     /** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
         com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase7.hxx b/cppuhelper/inc/cppuhelper/implbase7.hxx
index b347127..93115a3 100644
--- a/cppuhelper/inc/cppuhelper/implbase7.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase7.hxx
@@ -91,6 +91,9 @@ namespace cppu
             { return ImplHelper_getTypes( cd::get() ); }
         virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
             { return ImplHelper_getImplementationId( cd::get() ); }
+
+    protected:
+        ~ImplHelper7() throw () {}
     };
     /** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
         com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase8.hxx b/cppuhelper/inc/cppuhelper/implbase8.hxx
index 8c0aa4a..e37c0c9 100644
--- a/cppuhelper/inc/cppuhelper/implbase8.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase8.hxx
@@ -92,6 +92,9 @@ namespace cppu
             { return ImplHelper_getTypes( cd::get() ); }
         virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
             { return ImplHelper_getImplementationId( cd::get() ); }
+
+    protected:
+        ~ImplHelper8() throw () {}
     };
     /** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
         com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/implbase9.hxx b/cppuhelper/inc/cppuhelper/implbase9.hxx
index cf4f5bb..a09d79b 100644
--- a/cppuhelper/inc/cppuhelper/implbase9.hxx
+++ b/cppuhelper/inc/cppuhelper/implbase9.hxx
@@ -93,6 +93,9 @@ namespace cppu
             { return ImplHelper_getTypes( cd::get() ); }
         virtual com::sun::star::uno::Sequence< sal_Int8 > SAL_CALL getImplementationId() throw (com::sun::star::uno::RuntimeException)
             { return ImplHelper_getImplementationId( cd::get() ); }
+
+    protected:
+        ~ImplHelper9() throw () {}
     };
     /** Implementation helper implementing interfaces com::sun::star::lang::XTypeProvider and
         com::sun::star::uno::XInterface which supports weak mechanism to be held weakly
diff --git a/cppuhelper/inc/cppuhelper/propertysetmixin.hxx b/cppuhelper/inc/cppuhelper/propertysetmixin.hxx
index 07d50c0..ca3b882 100644
--- a/cppuhelper/inc/cppuhelper/propertysetmixin.hxx
+++ b/cppuhelper/inc/cppuhelper/propertysetmixin.hxx
@@ -87,6 +87,10 @@ template< typename T > class PropertySetMixin;
 
    @since UDK 3.2.1
 */
+#if defined __GNUC__ && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4)
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wnon-virtual-dtor"
+#endif
 class CPPUHELPER_DLLPUBLIC PropertySetMixinImpl:
     public com::sun::star::beans::XPropertySet,
     public com::sun::star::beans::XFastPropertySet,
@@ -403,6 +407,9 @@ private:
 
     void checkUnknown(rtl::OUString const & propertyName);
 };
+#if defined __GNUC__ && ((__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4)
+#pragma GCC diagnostic pop
+#endif
 
 /**
    @short A helper mixin to implement certain UNO interfaces related to property
diff --git a/cppuhelper/inc/cppuhelper/propshlp.hxx b/cppuhelper/inc/cppuhelper/propshlp.hxx
index 1ed2f60..08dee88 100644
--- a/cppuhelper/inc/cppuhelper/propshlp.hxx
+++ b/cppuhelper/inc/cppuhelper/propshlp.hxx
@@ -334,6 +334,10 @@ public:
         sal_Int32 nCount,
         sal_Bool bVetoable,
         bool bIgnoreRuntimeExceptionsWhileFiring) = 0;
+
+protected:
+    ~IEventNotificationHook() {}
+        // avoid warnings about virtual members and non-virtual dtor
 };
 
 
@@ -656,11 +660,9 @@ private:
                 sal_Int32 i_count
             );
 
-public:
+protected:
 // Suppress warning about virtual functions but non-virtual destructor:
-#if defined __GNUC__
-#pragma GCC system_header
-#elif defined _MSC_VER
+#if defined _MSC_VER
 #pragma warning(push)
 #pragma warning(disable: 4265)
 #endif
@@ -703,7 +705,7 @@ private:
     OPropertySetHelper2( const OPropertySetHelper2 & ) SAL_THROW(());
     OPropertySetHelper2 &    operator = ( const OPropertySetHelper2 & ) SAL_THROW(());
 
-public:
+protected:
 // Suppress warning about virtual functions but non-virtual destructor:
     /**
        You must call disposing before destruction.
diff --git a/cppuhelper/source/exc_thrower.cxx b/cppuhelper/source/exc_thrower.cxx
index 105adae..37cccf9 100644
--- a/cppuhelper/source/exc_thrower.cxx
+++ b/cppuhelper/source/exc_thrower.cxx
@@ -57,6 +57,8 @@ struct ExceptionThrower : public uno_Interface, XExceptionThrower
 {
     inline ExceptionThrower();
 
+    virtual ~ExceptionThrower() {}
+
     static inline Type const & getCppuType()
     {
         return ::getCppuType(
diff --git a/cppuhelper/unotypes/Makefile b/cppuhelper/unotypes/Makefile
index fae02ae..c92ad45 100644
--- a/cppuhelper/unotypes/Makefile
+++ b/cppuhelper/unotypes/Makefile
@@ -26,12 +26,12 @@
 # instead of those above.
 
 gb_PARTIALBUILD:=T
-include $(GBUILDDIR)/gbuild_simple.mk
+include $(GBUILDDIR)/gbuild.mk
 
 all: private_types.flag unotypes.flag
 
 # private_types
-private_types.flag: private_types.rdb
+private_types.flag: private_types.rdb $(gb_UnoApiTarget_CPPUMAKERTARGET)
 	$(call gb_Helper_abbreviate_dirs_native, \
 	    $(call gb_Helper_execute,cppumaker) -O. -BUCR -C $< \
 			-Tcppuhelper.detail.XExceptionThrower \
@@ -48,10 +48,11 @@ XExceptionThrower.urd: $(SRCDIR)/cppuhelper/unotypes/cppuhelper/detail/XExceptio
 		$(call gb_Helper_execute,idlc) -I. -I$(OUTDIR_FOR_BUILD)/idl -O. $<)
 
 # unotypes
-unotypes.flag:
+unotypes.flag: $(gb_UnoApiTarget_CPPUMAKERTARGET)
 	$(call gb_Helper_abbreviate_dirs_native, \
 		$(call gb_Helper_execute,cppumaker) -O. -BUCR -C \
 			$(foreach type,$(UNOTYPES),-T$(type)) $(OUTDIR_FOR_BUILD)/bin/udkapi.rdb)
+	touch $@
 
 UNOTYPES := \
 	com.sun.star.beans.PropertyAttribute \
diff --git a/cui/source/tabpages/borderconn.cxx b/cui/source/tabpages/borderconn.cxx
index 263eb95..7d04c6f 100644
--- a/cui/source/tabpages/borderconn.cxx
+++ b/cui/source/tabpages/borderconn.cxx
@@ -51,6 +51,8 @@ class LineItemWrapper : public sfx::SingleItemWrapper< SvxLineItem, const editen
 public:
     inline explicit     LineItemWrapper( sal_uInt16 nSlot ) : SingleItemWrapperType( nSlot ) {}
 
+    virtual ~LineItemWrapper() {}
+
     virtual const editeng::SvxBorderLine* GetItemValue( const SvxLineItem& rItem ) const
                             { return rItem.GetLine(); }
     virtual void        SetItemValue( SvxLineItem& rItem, const editeng::SvxBorderLine* pLine ) const
diff --git a/dbaccess/inc/IController.hxx b/dbaccess/inc/IController.hxx
index 962782e..78cce79 100644
--- a/dbaccess/inc/IController.hxx
+++ b/dbaccess/inc/IController.hxx
@@ -130,6 +130,9 @@ namespace dbaui
         /** allows interception of user input, aka mouse clicks and key events
         */
         virtual bool interceptUserInput( const NotifyEvent& _rEvent ) = 0;
+
+    protected:
+        ~IController() {}
     };
 }
 #endif // DBAUI_ICONTROLLER_HXX
diff --git a/dbaccess/inc/IReference.hxx b/dbaccess/inc/IReference.hxx
index 01534f6..959a0b1 100644
--- a/dbaccess/inc/IReference.hxx
+++ b/dbaccess/inc/IReference.hxx
@@ -38,6 +38,9 @@ namespace dbaui
     public:
         virtual void SAL_CALL acquire(  ) throw () = 0;
         virtual void SAL_CALL release(  ) throw () = 0;
+
+    protected:
+        ~IReference() {}
     };
 }
 #endif // DBAUI_IREFERENCE_HXX
diff --git a/dbaccess/source/core/inc/RefreshListener.hxx b/dbaccess/source/core/inc/RefreshListener.hxx
index 80e490c..dbd3b8a 100644
--- a/dbaccess/source/core/inc/RefreshListener.hxx
+++ b/dbaccess/source/core/inc/RefreshListener.hxx
@@ -47,6 +47,9 @@ namespace dbaccess
     {
     public:
         virtual void refresh(const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >& _rToBeRefreshed) = 0;
+
+    protected:
+        ~IRefreshListener() {}
     };
 
 }   // namespace dbaccess
diff --git a/dbaccess/source/core/inc/column.hxx b/dbaccess/source/core/inc/column.hxx
index b6e533a..93333f8 100644
--- a/dbaccess/source/core/inc/column.hxx
+++ b/dbaccess/source/core/inc/column.hxx
@@ -150,6 +150,9 @@ namespace dbaccess
         /** notifies that a column with a given name has been dropped
         */
         virtual void columnDropped( const ::rtl::OUString& _sName ) = 0;
+
+    protected:
+        ~IColumnFactory() {}
     };
 
     //============================================================
diff --git a/dbaccess/source/core/inc/columnsettings.hxx b/dbaccess/source/core/inc/columnsettings.hxx
index c407b60..c976e33 100644
--- a/dbaccess/source/core/inc/columnsettings.hxx
+++ b/dbaccess/source/core/inc/columnsettings.hxx
@@ -62,6 +62,9 @@ namespace dbaccess
                     const ::com::sun::star::uno::Type& _rType,
                     const void* _pInitialValue
                 ) = 0;
+
+    protected:
+        ~IPropertyContainer() {}
     };
 
     //====================================================================
diff --git a/dbaccess/source/core/inc/containerapprove.hxx b/dbaccess/source/core/inc/containerapprove.hxx
index abedd66..b88e945 100644
--- a/dbaccess/source/core/inc/containerapprove.hxx
+++ b/dbaccess/source/core/inc/containerapprove.hxx
@@ -52,6 +52,8 @@ namespace dbaccess
     class SAL_NO_VTABLE IContainerApprove
     {
     public:
+        virtual ~IContainerApprove() {}
+
         /** approves a given element for insertion into the container
             @param  _rName
                 specifies the name under which the element is going to be inserted
diff --git a/dbaccess/source/ext/macromigration/migrationprogress.hxx b/dbaccess/source/ext/macromigration/migrationprogress.hxx
index 9c1598a..a0724c0 100644
--- a/dbaccess/source/ext/macromigration/migrationprogress.hxx
+++ b/dbaccess/source/ext/macromigration/migrationprogress.hxx
@@ -50,6 +50,9 @@ namespace dbmm
         virtual void    start( const sal_uInt32 _nOverallRange ) = 0;
         virtual void    setOverallProgressText( const ::rtl::OUString& _rText ) = 0;
         virtual void    setOverallProgressValue( const sal_uInt32 _nValue ) = 0;
+
+    protected:
+        ~IMigrationProgress() {}
     };
 
 //........................................................................
diff --git a/dbaccess/source/ext/macromigration/progressmixer.hxx b/dbaccess/source/ext/macromigration/progressmixer.hxx
index dd52a72..22c6b44 100644
--- a/dbaccess/source/ext/macromigration/progressmixer.hxx
+++ b/dbaccess/source/ext/macromigration/progressmixer.hxx
@@ -52,6 +52,9 @@ namespace dbmm
         virtual void    start( sal_uInt32 _nRange ) = 0;
         virtual void    advance( sal_uInt32 _nValue ) = 0;
         virtual void    end() = 0;
+
+    protected:
+        ~IProgressConsumer() {}
     };
 
     //====================================================================
diff --git a/dbaccess/source/ui/app/IApplicationController.hxx b/dbaccess/source/ui/app/IApplicationController.hxx
index 5e7123e..3d28e3f 100644
--- a/dbaccess/source/ui/app/IApplicationController.hxx
+++ b/dbaccess/source/ui/app/IApplicationController.hxx
@@ -92,6 +92,9 @@ namespace dbaui
 
         /// called when an object container of any kind was found during enumerating tree view elements
         virtual void containerFound( const ::com::sun::star::uno::Reference< ::com::sun::star::container::XContainer >& _xContainer) = 0;
+
+    protected:
+        ~IApplicationController() {}
     };
 
 //........................................................................
diff --git a/dbaccess/source/ui/inc/IClipBoardTest.hxx b/dbaccess/source/ui/inc/IClipBoardTest.hxx
index 2f64d66..7daf155 100644
--- a/dbaccess/source/ui/inc/IClipBoardTest.hxx
+++ b/dbaccess/source/ui/inc/IClipBoardTest.hxx
@@ -43,6 +43,9 @@ namespace dbaui
         virtual void copy()     = 0;
         virtual void cut()      = 0;
         virtual void paste()    = 0;
+
+    protected:
+        ~IClipboardTest() {}
     };
 }
 #endif // DBACCESS_TABLEDESIGN_ICLIPBOARDTEST_HXX
diff --git a/dbaccess/source/ui/inc/IItemSetHelper.hxx b/dbaccess/source/ui/inc/IItemSetHelper.hxx
index d5bd905..e117850 100644
--- a/dbaccess/source/ui/inc/IItemSetHelper.hxx
+++ b/dbaccess/source/ui/inc/IItemSetHelper.hxx
@@ -54,6 +54,9 @@ namespace dbaui
     public:
         virtual const SfxItemSet* getOutputSet() const = 0;
         virtual SfxItemSet* getWriteOutputSet() = 0;
+
+    protected:
+        ~IItemSetHelper() {}
     };
 
     class SAL_NO_VTABLE IDatabaseSettingsDialog
@@ -73,6 +76,9 @@ namespace dbaui
             In a normal tab dialog, this will usually disable the "OK" button.
         */
         virtual void enableConfirmSettings( bool _bEnable ) = 0;
+
+    protected:
+        ~IDatabaseSettingsDialog() {}
     };
 }
 #endif // DBAUI_ITEMSETHELPER_HXX
diff --git a/dbaccess/source/ui/inc/IUpdateHelper.hxx b/dbaccess/source/ui/inc/IUpdateHelper.hxx
index b9976ef..d416b4d 100644
--- a/dbaccess/source/ui/inc/IUpdateHelper.hxx
+++ b/dbaccess/source/ui/inc/IUpdateHelper.hxx
@@ -46,6 +46,9 @@ namespace dbaui
         virtual void updateTimestamp(sal_Int32 _nPos,const ::com::sun::star::util::DateTime& _nValue) = 0;
         virtual void moveToInsertRow() = 0;
         virtual void insertRow() = 0;
+
+    protected:
+        ~IUpdateHelper() {}
     };
 }
 
diff --git a/dbaccess/source/ui/inc/WCopyTable.hxx b/dbaccess/source/ui/inc/WCopyTable.hxx
index ca7f272..cc7931b 100644
--- a/dbaccess/source/ui/inc/WCopyTable.hxx
+++ b/dbaccess/source/ui/inc/WCopyTable.hxx
@@ -56,6 +56,9 @@ namespace dbaui
     {
     public:
         virtual bool operator()(const ::rtl::OUString& _sColumnName) const = 0;
+
+    protected:
+        ~TColumnFindFunctor() {}
     };
 
     class TExportColumnFindFunctor : public TColumnFindFunctor
@@ -66,6 +69,9 @@ namespace dbaui
         {
             m_pColumns = _pColumns;
         }
+
+        virtual ~TExportColumnFindFunctor() {}
+
         inline bool operator()(const ::rtl::OUString& _sColumnName) const
         {
             return m_pColumns->find(_sColumnName) != m_pColumns->end();
@@ -83,6 +89,9 @@ namespace dbaui
             ,m_pVector(_pVector)
         {
         }
+
+        virtual ~TMultiListBoxEntryFindFunctor() {}
+
         inline bool operator()(const ::rtl::OUString& _sColumnName) const
         {
             return ::std::find_if(m_pVector->begin(),m_pVector->end(),
diff --git a/dbaccess/source/ui/inc/adtabdlg.hxx b/dbaccess/source/ui/inc/adtabdlg.hxx
index d2d7c6d..9e8d96f 100644
--- a/dbaccess/source/ui/inc/adtabdlg.hxx
+++ b/dbaccess/source/ui/inc/adtabdlg.hxx
@@ -70,6 +70,9 @@ namespace dbaui
         virtual bool    allowAddition() const = 0;
         virtual void    addTableWindow( const String& _rQualifiedTableName, const String& _rAliasName ) = 0;
         virtual void    onWindowClosing( const Window* _pWindow ) = 0;
+
+    protected:
+        ~IAddTableDialogContext() {}
     };
 
     //========================================================================
diff --git a/dbaccess/source/ui/inc/callbacks.hxx b/dbaccess/source/ui/inc/callbacks.hxx
index 355e8fa..486afba 100644
--- a/dbaccess/source/ui/inc/callbacks.hxx
+++ b/dbaccess/source/ui/inc/callbacks.hxx
@@ -73,6 +73,9 @@ namespace dbaui
         /** execute a drop request
         */
         virtual sal_Int8    executeDrop( const ExecuteDropEvent& _rEvt ) = 0;
+
+    protected:
+        ~IControlActionListener() {}
     };
 
     //====================================================================
@@ -108,6 +111,9 @@ namespace dbaui
         */
         virtual ::com::sun::star::uno::Any
                                 getCurrentSelection( Control& _rControl ) const = 0;
+
+    protected:
+        ~IContextMenuProvider() {}
     };
 
     //====================================================================
@@ -118,6 +124,9 @@ namespace dbaui
     public:
         /// called when a drag operation done with a Transferable has been finished
         virtual void        dragFinished( ) = 0;
+
+    protected:
+        ~IDragTransferableListener() {}
     };
 
 //........................................................................
diff --git a/dbaccess/source/ui/inc/dbtreelistbox.hxx b/dbaccess/source/ui/inc/dbtreelistbox.hxx
index bd40f3a..558c661 100644
--- a/dbaccess/source/ui/inc/dbtreelistbox.hxx
+++ b/dbaccess/source/ui/inc/dbtreelistbox.hxx
@@ -51,6 +51,9 @@ namespace dbaui
     {
     public:
         virtual bool    includeEntry( SvLBoxEntry* _pEntry ) const = 0;
+
+    protected:
+        ~IEntryFilter() {}
     };
 
     //========================================================================
diff --git a/dbaccess/source/ui/inc/sbagrid.hxx b/dbaccess/source/ui/inc/sbagrid.hxx
index 344488a..1637716 100644
--- a/dbaccess/source/ui/inc/sbagrid.hxx
+++ b/dbaccess/source/ui/inc/sbagrid.hxx
@@ -224,6 +224,9 @@ namespace dbaui
         virtual void CellDeactivated()  = 0;
         virtual void BeforeDrop()       = 0;
         virtual void AfterDrop()        = 0;
+
+    protected:
+        ~SbaGridListener() {}
     };
 
     //==================================================================
diff --git a/dbaccess/source/ui/misc/dbaundomanager.cxx b/dbaccess/source/ui/misc/dbaundomanager.cxx
index 7e34b68..58b83be 100644
--- a/dbaccess/source/ui/misc/dbaundomanager.cxx
+++ b/dbaccess/source/ui/misc/dbaundomanager.cxx
@@ -120,6 +120,8 @@ namespace dbaui
         {
         }
 
+        virtual ~OslMutexFacade() {}
+
         virtual void acquire();
         virtual void release();
 
diff --git a/dbaccess/source/ui/querydesign/JoinController.cxx b/dbaccess/source/ui/querydesign/JoinController.cxx
index 4008490..1578a95 100644
--- a/dbaccess/source/ui/querydesign/JoinController.cxx
+++ b/dbaccess/source/ui/querydesign/JoinController.cxx
@@ -100,6 +100,8 @@ public:
     {
     }
 
+    virtual ~AddTableDialogContext() {}
+
     // IAddTableDialogContext
     virtual ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XConnection >
                     getConnection() const;
diff --git a/editeng/source/items/svxfont.cxx b/editeng/source/items/svxfont.cxx
index 2e76b11..75954c9 100644
--- a/editeng/source/items/svxfont.cxx
+++ b/editeng/source/items/svxfont.cxx
@@ -199,6 +199,8 @@ public:
         : pOut(_pOut), rTxt(_rTxt), nIdx(_nIdx), nLen(_nLen)
         { }
 
+    virtual ~SvxDoCapitals() {}
+
     virtual void DoSpace( const sal_Bool bDraw );
     virtual void SetSpace();
     virtual void Do( const XubString &rTxt,
@@ -623,6 +625,8 @@ public:
               nKern( _nKrn )
             { }
 
+    virtual ~SvxDoGetCapitalSize() {}
+
     virtual void Do( const XubString &rTxt, const xub_StrLen nIdx,
                      const xub_StrLen nLen, const sal_Bool bUpper );
 
@@ -687,6 +691,7 @@ public:
           aSpacePos( rPos ),
           nKern( nKrn )
         { }
+    virtual ~SvxDoDrawCapital() {}
     virtual void DoSpace( const sal_Bool bDraw );
     virtual void SetSpace();
     virtual void Do( const XubString &rTxt, const xub_StrLen nIdx,
diff --git a/extensions/source/propctrlr/browserline.hxx b/extensions/source/propctrlr/browserline.hxx
index 0f0b2f3..be88c81 100644
--- a/extensions/source/propctrlr/browserline.hxx
+++ b/extensions/source/propctrlr/browserline.hxx
@@ -52,6 +52,9 @@ namespace pcr
     {
     public:
         virtual void    buttonClicked( OBrowserLine* _pLine, sal_Bool _bPrimary ) = 0;
+
+    protected:
+        ~IButtonClickListener() {}
     };
 
     //========================================================================
diff --git a/extensions/source/propctrlr/browserlistbox.hxx b/extensions/source/propctrlr/browserlistbox.hxx
index c5c46ef..a2f0ea8 100644
--- a/extensions/source/propctrlr/browserlistbox.hxx
+++ b/extensions/source/propctrlr/browserlistbox.hxx
@@ -90,6 +90,9 @@ namespace pcr
         virtual void SAL_CALL focusGained( const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControl >& Control ) throw (::com::sun::star::uno::RuntimeException) = 0;
         virtual void SAL_CALL valueChanged( const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControl >& Control ) throw (::com::sun::star::uno::RuntimeException) = 0;
         virtual void SAL_CALL activateNextControl( const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControl >& CurrentControl ) throw (::com::sun::star::uno::RuntimeException) = 0;
+
+    protected:
+        ~IControlContext() {}
     };
 
     //========================================================================
diff --git a/extensions/source/propctrlr/commoncontrol.hxx b/extensions/source/propctrlr/commoncontrol.hxx
index a38f0e0..5be4d40 100644
--- a/extensions/source/propctrlr/commoncontrol.hxx
+++ b/extensions/source/propctrlr/commoncontrol.hxx
@@ -79,6 +79,9 @@ namespace pcr
     {
     public:
         virtual void modified() = 0;
+
+    protected:
+        ~IModifyListener() {}
     };
 
     //========================================================================
diff --git a/extensions/source/propctrlr/composeduiupdate.hxx b/extensions/source/propctrlr/composeduiupdate.hxx
index 0ee9a98..1a9617c 100644
--- a/extensions/source/propctrlr/composeduiupdate.hxx
+++ b/extensions/source/propctrlr/composeduiupdate.hxx
@@ -56,6 +56,9 @@ namespace pcr
     {
     public:
         virtual ::sal_Bool SAL_CALL hasPropertyByName( const ::rtl::OUString& _rName ) throw (::com::sun::star::uno::RuntimeException) = 0;
+
+    protected:
+        ~IPropertyExistenceCheck() {}
     };
 
     //====================================================================
diff --git a/extensions/source/propctrlr/propcontrolobserver.hxx b/extensions/source/propctrlr/propcontrolobserver.hxx
index d1d48ab..c42aa43 100644
--- a/extensions/source/propctrlr/propcontrolobserver.hxx
+++ b/extensions/source/propctrlr/propcontrolobserver.hxx
@@ -47,6 +47,9 @@ namespace pcr
     public:
         virtual void    focusGained( const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControl >& _Control ) = 0;
         virtual void    valueChanged( const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControl >& _Control ) = 0;
+
+    protected:
+        ~IPropertyControlObserver() {}
     };
 
 //........................................................................
diff --git a/extensions/source/propctrlr/proplinelistener.hxx b/extensions/source/propctrlr/proplinelistener.hxx
index 4d72352..6f116b1 100644
--- a/extensions/source/propctrlr/proplinelistener.hxx
+++ b/extensions/source/propctrlr/proplinelistener.hxx
@@ -42,6 +42,9 @@ namespace pcr
     public:
         virtual void    Clicked(    const ::rtl::OUString& _rName, sal_Bool _bPrimary ) = 0;
         virtual void    Commit(     const ::rtl::OUString& _rName, const ::com::sun::star::uno::Any& _rVal ) = 0;
+
+    protected:
+        ~IPropertyLineListener() {}
     };
 
 //............................................................................
diff --git a/extensions/source/update/check/actionlistener.hxx b/extensions/source/update/check/actionlistener.hxx
index a1c4571..c4f16c6 100644
--- a/extensions/source/update/check/actionlistener.hxx
+++ b/extensions/source/update/check/actionlistener.hxx
@@ -41,6 +41,9 @@ class IActionListener : public rtl::IReference
     virtual void            pause() = 0;
     virtual void            resume() = 0;
     virtual void            closeAfterFailure() = 0;
+
+protected:
+    ~IActionListener() {}
 };
 
 #endif //INCLUDED_ACTION_LISTENER_HXX
diff --git a/extensions/source/update/check/download.hxx b/extensions/source/update/check/download.hxx
index 0010666..afa7c14 100644
--- a/extensions/source/update/check/download.hxx
+++ b/extensions/source/update/check/download.hxx
@@ -52,6 +52,9 @@ struct DownloadInteractionHandler : public rtl::IReference
 
     // called when download has been finished
     virtual void downloadFinished(const rtl::OUString& rFileName) = 0;
+
+protected:
+    ~DownloadInteractionHandler() {}
 };
 
 
diff --git a/extensions/source/update/check/updatecheckconfig.hxx b/extensions/source/update/check/updatecheckconfig.hxx
index 255b717..743130d 100644
--- a/extensions/source/update/check/updatecheckconfig.hxx
+++ b/extensions/source/update/check/updatecheckconfig.hxx
@@ -41,6 +41,9 @@
 struct IByNameAccess
 {
     virtual ::com::sun::star::uno::Any getValue(const sal_Char * pName) = 0;
+
+protected:
+    ~IByNameAccess() {}
 };
 
 /* This helper class provides by name access to a sequence of named values */
diff --git a/extensions/source/update/check/updatecheckconfiglistener.hxx b/extensions/source/update/check/updatecheckconfiglistener.hxx
index fc7ee79..849919f 100644
--- a/extensions/source/update/check/updatecheckconfiglistener.hxx
+++ b/extensions/source/update/check/updatecheckconfiglistener.hxx
@@ -39,6 +39,9 @@ struct UpdateCheckConfigListener : public rtl::IReference
 {
     virtual void autoCheckStatusChanged(bool enabled) = 0;
     virtual void autoCheckIntervalChanged() = 0;
+
+protected:
+    ~UpdateCheckConfigListener() {}
 };
 
 #endif
diff --git a/forms/source/inc/featuredispatcher.hxx b/forms/source/inc/featuredispatcher.hxx
index 760a8c4..7a1afc1 100644
--- a/forms/source/inc/featuredispatcher.hxx
+++ b/forms/source/inc/featuredispatcher.hxx
@@ -102,6 +102,9 @@ namespace frm
             integer information associated with it.
         */
         virtual sal_Int32       getIntegerState( sal_Int16 _nFeatureId ) const = 0;
+
+    protected:
+        ~IFeatureDispatcher() {}
     };
 
 //.........................................................................
diff --git a/forms/source/inc/property.hxx b/forms/source/inc/property.hxx
index d12a0d0..81102c6 100644
--- a/forms/source/inc/property.hxx
+++ b/forms/source/inc/property.hxx
@@ -106,6 +106,8 @@ private:
 class ConcreteInfoService : public ::comphelper::IPropertyInfoService
 {
 public:
+    virtual ~ConcreteInfoService() {}
+
     virtual sal_Int32 getPreferedPropertyId(const ::rtl::OUString& _rName);
 };
 
diff --git a/forms/source/inc/propertybaghelper.hxx b/forms/source/inc/propertybaghelper.hxx
index 5bb1058..7600618 100644
--- a/forms/source/inc/propertybaghelper.hxx
+++ b/forms/source/inc/propertybaghelper.hxx
@@ -58,6 +58,9 @@ namespace frm
 
         virtual ::com::sun::star::uno::Reference< ::com::sun::star::beans::XMultiPropertySet >
                                 getPropertiesInterface() = 0;
+
+    protected:
+        ~IPropertyBagHelperContext() {}
     };
 
     //====================================================================
diff --git a/forms/source/richtext/richtextengine.hxx b/forms/source/richtext/richtextengine.hxx
index c571f51..99ab2d6 100644
--- a/forms/source/richtext/richtextengine.hxx
+++ b/forms/source/richtext/richtextengine.hxx
@@ -47,6 +47,9 @@ namespace frm
     {
     public:
         virtual void EditEngineStatusChanged( const EditStatus& _rStatus ) = 0;
+
+    protected:
+        ~IEngineStatusListener() {}
     };
 
     //====================================================================
diff --git a/forms/source/richtext/richtextunowrapper.hxx b/forms/source/richtext/richtextunowrapper.hxx
index ef9ecbe..65ced5a 100644
--- a/forms/source/richtext/richtextunowrapper.hxx
+++ b/forms/source/richtext/richtextunowrapper.hxx
@@ -44,6 +44,9 @@ namespace frm
     {
     public:
         virtual void potentialTextChange( ) = 0;
+
+    protected:
+        ~IEngineTextChangeListener() {}
     };
 
     //====================================================================
diff --git a/forms/source/richtext/rtattributehandler.hxx b/forms/source/richtext/rtattributehandler.hxx
index e908ae7..36c5586 100644
--- a/forms/source/richtext/rtattributehandler.hxx
+++ b/forms/source/richtext/rtattributehandler.hxx
@@ -68,6 +68,9 @@ namespace frm
         virtual     AttributeId     getAttributeId( ) const = 0;
         virtual     AttributeState  getState( const SfxItemSet& _rAttribs ) const = 0;
         virtual     void            executeAttribute( const SfxItemSet& _rCurrentAttribs, SfxItemSet& _rNewAttribs, const SfxPoolItem* _pAdditionalArg, ScriptType _nForScriptType ) const = 0;
+
+    protected:
+        ~IAttributeHandler() {}
     };
 
     //====================================================================
diff --git a/forms/source/richtext/rtattributes.hxx b/forms/source/richtext/rtattributes.hxx
index 246a136..8049705 100644
--- a/forms/source/richtext/rtattributes.hxx
+++ b/forms/source/richtext/rtattributes.hxx
@@ -163,6 +163,9 @@ namespace frm
     public:
         virtual AttributeState  getState( AttributeId _nAttributeId ) const = 0;
         virtual void            executeAttribute( AttributeId _nAttributeId, const SfxPoolItem* _pArgument ) = 0;
+
+    protected:
+        ~IMultiAttributeDispatcher() {}
     };
 
 //........................................................................
diff --git a/forms/source/richtext/textattributelistener.hxx b/forms/source/richtext/textattributelistener.hxx
index 51ea48f..0461617 100644
--- a/forms/source/richtext/textattributelistener.hxx
+++ b/forms/source/richtext/textattributelistener.hxx
@@ -43,6 +43,9 @@ namespace frm
     {
     public:
         virtual void    onAttributeStateChanged( AttributeId _nAttributeId, const AttributeState& _rState ) = 0;
+
+    protected:
+        ~ITextAttributeListener() {}
     };
 
     //====================================================================
@@ -52,6 +55,9 @@ namespace frm
     {
     public:
         virtual void    onSelectionChanged( const ESelection& _rSelection ) = 0;
+
+    protected:
+        ~ITextSelectionListener() {}
     };
 
 //........................................................................
diff --git a/formula/inc/formula/ExternalReferenceHelper.hxx b/formula/inc/formula/ExternalReferenceHelper.hxx
index 68d2860..e884ae7 100644
--- a/formula/inc/formula/ExternalReferenceHelper.hxx
+++ b/formula/inc/formula/ExternalReferenceHelper.hxx
@@ -38,6 +38,9 @@ namespace formula
     {
         public:
             virtual ::rtl::OUString getCacheTableName(sal_uInt16 nFileId, size_t nTabIndex) const = 0;
+
+        protected:
+            ~ExternalReferenceHelper() {}
     };
 // =============================================================================
 } // formula
diff --git a/formula/inc/formula/IControlReferenceHandler.hxx b/formula/inc/formula/IControlReferenceHandler.hxx
index f078544..aa1da3f 100644
--- a/formula/inc/formula/IControlReferenceHandler.hxx
+++ b/formula/inc/formula/IControlReferenceHandler.hxx
@@ -41,6 +41,9 @@ namespace formula
         virtual void HideReference( sal_Bool bDoneRefMode = sal_True ) = 0;
         virtual void ReleaseFocus( RefEdit* pEdit, RefButton* pButton = NULL ) = 0;
         virtual void ToggleCollapsed( RefEdit* pEdit, RefButton* pButton = NULL ) = 0;
+
+    protected:
+        ~IControlReferenceHandler() {}
     };
 } // formula
 #endif // FORMULA_ICONTROL_REFERENCE_HANDLER_HXX_INCLUDED
diff --git a/formula/inc/formula/IFunctionDescription.hxx b/formula/inc/formula/IFunctionDescription.hxx
index e3f6d84..e8ead93 100644
--- a/formula/inc/formula/IFunctionDescription.hxx
+++ b/formula/inc/formula/IFunctionDescription.hxx
@@ -64,6 +64,9 @@ namespace formula
         virtual const IFunctionDescription* getFunctionByName(const ::rtl::OUString& _sFunctionName) const = 0;
 
         virtual sal_Unicode getSingleToken(const EToken _eToken) const = 0;
+
+    protected:
+        ~IFunctionManager() {}
     };
 
     class SAL_NO_VTABLE IFunctionCategory
@@ -75,6 +78,9 @@ namespace formula
         virtual const IFunctionDescription* getFunction(sal_uInt32 _nPos) const = 0;
         virtual sal_uInt32                  getNumber() const = 0;
         virtual ::rtl::OUString             getName() const = 0;
+
+    protected:
+        ~IFunctionCategory() {}
     };
 
     class SAL_NO_VTABLE IFunctionDescription
@@ -99,6 +105,9 @@ namespace formula
         virtual ::rtl::OUString getParameterName(sal_uInt32 _nPos) const = 0;
         virtual ::rtl::OUString getParameterDescription(sal_uInt32 _nPos) const = 0;
         virtual bool isParameterOptional(sal_uInt32 _nPos) const = 0;
+
+    protected:
+        ~IFunctionDescription() {}
     };
 
     class SAL_NO_VTABLE IFormulaToken
@@ -106,6 +115,9 @@ namespace formula
     public:
         virtual bool isFunction() const = 0;
         virtual sal_uInt32 getArgumentCount() const = 0;
+
+    protected:
+        ~IFormulaToken() {}
     };
 
     class SAL_NO_VTABLE IStructHelper
@@ -117,6 +129,9 @@ namespace formula
 
         virtual String          GetEntryText(SvLBoxEntry* pEntry) const = 0;
         virtual SvLBoxEntry*    GetParent(SvLBoxEntry* pEntry) const = 0;
+
+    protected:
+        ~IStructHelper() {}
     };
 
     class SAL_NO_VTABLE IFormulaEditorHelper
@@ -153,6 +168,9 @@ namespace formula
         virtual void doClose(sal_Bool _bOk) = 0;
         virtual void insertEntryToLRUList(const IFunctionDescription*   pDesc) = 0;
         virtual void showReference(const String& _sFormula) = 0;
+
+    protected:
+        ~IFormulaEditorHelper() {}
     };
 
 }
diff --git a/formula/source/ui/dlg/ControlHelper.hxx b/formula/source/ui/dlg/ControlHelper.hxx
index 0cc96d2..b1aa636 100644
--- a/formula/source/ui/dlg/ControlHelper.hxx
+++ b/formula/source/ui/dlg/ControlHelper.hxx
@@ -146,6 +146,8 @@ public:
 
     ArgInput();
 
+    virtual ~ArgInput() {}
+
     void        InitArgInput (  FixedText*      pftArg,
                                 ImageButton*    pbtnFx,
                                 ArgEdit*        pedArg,
diff --git a/formula/source/ui/dlg/formula.cxx b/formula/source/ui/dlg/formula.cxx
index 3789538..de692bd 100644
--- a/formula/source/ui/dlg/formula.cxx
+++ b/formula/source/ui/dlg/formula.cxx
@@ -85,6 +85,8 @@ namespace formula
     public:
         OFormulaToken(bool _bFunction,sal_Int32 _nParaCount) : m_nParaCount(_nParaCount),m_bIsFunction(_bFunction){}
 
+        virtual ~OFormulaToken() {}
+
         virtual bool isFunction() const { return m_bIsFunction; }
         virtual sal_uInt32 getArgumentCount() const { return m_nParaCount; }
     };
diff --git a/fpicker/source/office/pickercallbacks.hxx b/fpicker/source/office/pickercallbacks.hxx
index 2140fe5..896b65a 100644
--- a/fpicker/source/office/pickercallbacks.hxx
+++ b/fpicker/source/office/pickercallbacks.hxx
@@ -46,6 +46,9 @@ namespace svt
         virtual Control*    getControl( sal_Int16 _nControlId, sal_Bool _bLabelControl = sal_False ) const = 0;
         virtual void        enableControl( sal_Int16 _nControlId, sal_Bool _bEnable ) = 0;
         virtual String      getCurFilter( ) const = 0;
+
+    protected:
+        ~IFilePickerController() {}
     };
 
     // --------------------------------------------------------------------
@@ -53,6 +56,9 @@ namespace svt
     {
     public:
         virtual void    notify( sal_Int16 _nEventId, sal_Int16 _nControlId ) = 0;
+
+    protected:
+        ~IFilePickerListener() {}
     };
 
 //.........................................................................
diff --git a/framework/inc/framework/iguard.hxx b/framework/inc/framework/iguard.hxx
index a5674c2..2ebb526 100644
--- a/framework/inc/framework/iguard.hxx
+++ b/framework/inc/framework/iguard.hxx
@@ -63,6 +63,9 @@ class SAL_NO_VTABLE IGuard
         */
         virtual void reset() = 0;
 
+    protected:
+        ~IGuard() {}
+
 };      //  class IGuard
 
 }       //  namespace framework
diff --git a/framework/inc/framework/imutex.hxx b/framework/inc/framework/imutex.hxx
index 10b15ae..862dfaa 100644
--- a/framework/inc/framework/imutex.hxx
+++ b/framework/inc/framework/imutex.hxx
@@ -63,6 +63,8 @@ class SAL_NO_VTABLE IMutex
         virtual void acquire() = 0;
         virtual void release() = 0;
 
+    protected:
+        ~IMutex() {}
 };      //  class IMutex
 
 }       //  namespace framework
diff --git a/framework/inc/framework/undomanagerhelper.hxx b/framework/inc/framework/undomanagerhelper.hxx
index bfac08a..2e559f3 100644
--- a/framework/inc/framework/undomanagerhelper.hxx
+++ b/framework/inc/framework/undomanagerhelper.hxx
@@ -60,6 +60,9 @@ namespace framework
             Even if the guard currently has not a lock on the mutex, this method must succeed.
         */
         virtual IMutex& getGuardedMutex() = 0;
+
+    protected:
+        ~IMutexGuard() {}
     };
 
     //==================================================================================================================
@@ -82,6 +85,9 @@ namespace framework
         */
         virtual ::com::sun::star::uno::Reference< ::com::sun::star::document::XUndoManager >
                                         getThis() = 0;
+
+    protected:
+        ~IUndoManagerImplementation() {}
     };
 
     //==================================================================================================================
diff --git a/framework/inc/helper/ilayoutnotifications.hxx b/framework/inc/helper/ilayoutnotifications.hxx
index fbc01a1..5313781 100644
--- a/framework/inc/helper/ilayoutnotifications.hxx
+++ b/framework/inc/helper/ilayoutnotifications.hxx
@@ -43,6 +43,9 @@ class ILayoutNotifications
         };
 
         virtual void requestLayout( Hint eHint = HINT_NOT_SPECIFIED ) = 0;
+
+    protected:
+        ~ILayoutNotifications() {}
 };
 
 }
diff --git a/framework/inc/threadhelp/igate.h b/framework/inc/threadhelp/igate.h
index 78399a0..7dc1cfa 100755
--- a/framework/inc/threadhelp/igate.h
+++ b/framework/inc/threadhelp/igate.h
@@ -67,6 +67,8 @@ class IGate
         virtual void     openGap (                                   ) = 0;
         virtual sal_Bool wait    ( const TimeValue* pTimeOut = NULL  ) = 0;
 
+    protected:
+        ~IGate() {}
 };      //  class IGate
 
 }       //  namespace framework
diff --git a/framework/inc/threadhelp/irwlock.h b/framework/inc/threadhelp/irwlock.h
index 3d513fc..22363c7 100755
--- a/framework/inc/threadhelp/irwlock.h
+++ b/framework/inc/threadhelp/irwlock.h
@@ -81,6 +81,8 @@ class IRWLock
         virtual void releaseWriteAccess   () =0;
         virtual void downgradeWriteAccess () =0;
 
+    protected:
+        ~IRWLock() {}
 };      //  class IRWLock
 
 }       //  namespace framework
diff --git a/framework/inc/threadhelp/itransactionmanager.h b/framework/inc/threadhelp/itransactionmanager.h
index 20f9330..5e70ebd 100755
--- a/framework/inc/threadhelp/itransactionmanager.h
+++ b/framework/inc/threadhelp/itransactionmanager.h
@@ -143,6 +143,8 @@ class ITransactionManager
         virtual void         registerTransaction    ( EExceptionMode eMode  , ERejectReason& eReason ) throw( css::uno::RuntimeException, css::lang::DisposedException ) = 0;
         virtual void         unregisterTransaction  (                                                ) throw( css::uno::RuntimeException, css::lang::DisposedException ) = 0;
 
+    protected:
+        ~ITransactionManager() {}
 };      //  class ITransactionManager
 
 }       //  namespace framework
diff --git a/framework/inc/uielement/comboboxtoolbarcontroller.hxx b/framework/inc/uielement/comboboxtoolbarcontroller.hxx
index 747c0f9..4576f33 100644
--- a/framework/inc/uielement/comboboxtoolbarcontroller.hxx
+++ b/framework/inc/uielement/comboboxtoolbarcontroller.hxx
@@ -51,6 +51,9 @@ class IComboBoxListener
         virtual void GetFocus() = 0;
         virtual void LoseFocus() = 0;
         virtual long PreNotify( NotifyEvent& rNEvt ) = 0;
+
+    protected:
+        ~IComboBoxListener() {}
 };
 
 class ComboboxToolbarController : public IComboBoxListener,
diff --git a/framework/inc/uielement/dropdownboxtoolbarcontroller.hxx b/framework/inc/uielement/dropdownboxtoolbarcontroller.hxx
index c3da8b8..c38dba3 100644
--- a/framework/inc/uielement/dropdownboxtoolbarcontroller.hxx
+++ b/framework/inc/uielement/dropdownboxtoolbarcontroller.hxx
@@ -55,6 +55,8 @@ class IListBoxListener
         virtual void GetFocus() = 0;
         virtual void LoseFocus() = 0;
         virtual long PreNotify( NotifyEvent& rNEvt ) = 0;
+    protected:
+        ~IListBoxListener() {}
 };
 
 class DropdownToolbarController : public IListBoxListener,
diff --git a/framework/inc/uielement/edittoolbarcontroller.hxx b/framework/inc/uielement/edittoolbarcontroller.hxx
index b86b886..46e2ff0 100644
--- a/framework/inc/uielement/edittoolbarcontroller.hxx
+++ b/framework/inc/uielement/edittoolbarcontroller.hxx
@@ -55,6 +55,9 @@ class IEditListener
         virtual void GetFocus() = 0;
         virtual void LoseFocus() = 0;
         virtual long PreNotify( NotifyEvent& rNEvt ) = 0;
+
+    protected:
+        ~IEditListener() {}
 };
 
 class EditToolbarController : public IEditListener,
diff --git a/framework/inc/uielement/spinfieldtoolbarcontroller.hxx b/framework/inc/uielement/spinfieldtoolbarcontroller.hxx
index 3e98ff0..2aa3901 100644
--- a/framework/inc/uielement/spinfieldtoolbarcontroller.hxx
+++ b/framework/inc/uielement/spinfieldtoolbarcontroller.hxx
@@ -61,7 +61,10 @@ class ISpinfieldListener
         virtual void StateChanged( StateChangedType nType ) = 0;
         virtual void DataChanged( const DataChangedEvent& rDCEvt ) = 0;
         virtual long PreNotify( NotifyEvent& rNEvt ) = 0;
- };
+
+    protected:
+        ~ISpinfieldListener() {}
+};
 
 class SpinfieldToolbarController : public ISpinfieldListener,
                                    public ComplexToolbarController
diff --git a/framework/source/inc/accelerators/istoragelistener.hxx b/framework/source/inc/accelerators/istoragelistener.hxx
index 555d517..667b7dc 100644
--- a/framework/source/inc/accelerators/istoragelistener.hxx
+++ b/framework/source/inc/accelerators/istoragelistener.hxx
@@ -58,6 +58,9 @@ class IStorageListener
         //--------------------------------------
         /** @short  TODO */
         virtual void changesOccurred(const ::rtl::OUString& sPath) = 0;
+
+    protected:
+        ~IStorageListener() {}
 };
 
 } // namespace framework
diff --git a/javaunohelper/cppumaker/Makefile b/javaunohelper/cppumaker/Makefile
index 017acf1..f0f3642 100644
--- a/javaunohelper/cppumaker/Makefile
+++ b/javaunohelper/cppumaker/Makefile
@@ -28,7 +28,7 @@
 gb_PARTIALBUILD := T
 include $(GBUILDDIR)/gbuild_simple.mk
 
-done :
+done : $(gb_UnoApiTarget_CPPUMAKERTARGET)
 	$(call gb_Helper_abbreviate_dirs_native, \
 	$(call gb_Helper_execute,cppumaker -C -BUCR -O. \
 		-Tcom.sun.star.beans.NamedValue \
diff --git a/libcmis/libcmis-0.1.0-non-virtual-dtor.patch b/libcmis/libcmis-0.1.0-non-virtual-dtor.patch
new file mode 100644
index 0000000..764c7b2
--- /dev/null
+++ b/libcmis/libcmis-0.1.0-non-virtual-dtor.patch
@@ -0,0 +1,11 @@
+--- misc/libcmis-0.1.0/src/libcmis/cmis-object.hxx	2011-09-30 20:35:37.000000000 +0200
++++ misc/build/libcmis-0.1.0/src/libcmis/cmis-object.hxx	2012-03-13 21:46:03.985188599 +0100
+@@ -39,6 +39,8 @@
+     class CmisObject
+     {
+         public:
++            virtual ~CmisObject() {}
++
+             virtual std::string getId( ) = 0;
+             virtual std::string getName( ) = 0;
+ 
diff --git a/libcmis/makefile.mk b/libcmis/makefile.mk
index 4e20948..855a67f 100644
--- a/libcmis/makefile.mk
+++ b/libcmis/makefile.mk
@@ -48,6 +48,7 @@ ADDITIONAL_FILES=src$/libcmis$/makefile.mk
 PATCH_FILES=$(TARFILE_NAME).patch
 #https://sourceforge.net/p/libcmis/tickets/1/
 PATCH_FILES+=libcmis-0001-virtualdtor.patch
+PATCH_FILES+=libcmis-0.1.0-non-virtual-dtor.patch
 
 BUILD_ACTION=dmake $(MFLAGS) $(CALLMACROS)
 BUILD_DIR=src$/libcmis
diff --git a/linguistic/inc/iprcache.hxx b/linguistic/inc/iprcache.hxx
index be48fac..af04693 100644
--- a/linguistic/inc/iprcache.hxx
+++ b/linguistic/inc/iprcache.hxx
@@ -54,6 +54,9 @@ class Flushable
 {
 public:
     virtual void    Flush() = 0;
+
+protected:
+    ~Flushable() {}
 };
 
 
diff --git a/linguistic/source/defs.hxx b/linguistic/source/defs.hxx
index 14c0ce2..c37706a 100644
--- a/linguistic/source/defs.hxx
+++ b/linguistic/source/defs.hxx
@@ -124,6 +124,9 @@ public:
     virtual void SetServiceList( const css::lang::Locale &rLocale, const css::uno::Sequence< rtl::OUString > &rSvcImplNames ) = 0;
     virtual css::uno::Sequence< rtl::OUString > GetServiceList( const css::lang::Locale &rLocale ) const = 0;
     virtual DspType GetDspType() const = 0;
+
+protected:
+    ~LinguDispatcher() {}
 };
 
 
diff --git a/oox/inc/oox/drawingml/customshapeproperties.hxx b/oox/inc/oox/drawingml/customshapeproperties.hxx
index 5fd6cd0..957a32a 100644
--- a/oox/inc/oox/drawingml/customshapeproperties.hxx
+++ b/oox/inc/oox/drawingml/customshapeproperties.hxx
@@ -126,6 +126,7 @@ protected:
     static com::sun::star::drawing::EnhancedCustomShapeParameterPair createParameterPair( const ParameterPairData *pData );
     static com::sun::star::uno::Sequence< com::sun::star::drawing::EnhancedCustomShapeParameterPair > createParameterPairSequence( size_t nElems, const ParameterPairData *pData );
 public:
+    virtual ~CustomShapeProvider() {}
     virtual PropertyMap getProperties() = 0;
 };
 
diff --git a/oox/inc/oox/mathml/export.hxx b/oox/inc/oox/mathml/export.hxx
index f4e0563..6c35feb 100644
--- a/oox/inc/oox/mathml/export.hxx
+++ b/oox/inc/oox/mathml/export.hxx
@@ -42,8 +42,12 @@ namespace oox
 class OOX_DLLPUBLIC FormulaExportBase
 {
 public:
-    FormulaExportBase();
     virtual void writeFormulaOoxml( ::sax_fastparser::FSHelperPtr m_pSerializer, oox::core::OoxmlVersion version ) = 0;
+
+protected:
+    FormulaExportBase();
+
+    ~FormulaExportBase() {}
 };
 
 } // namespace
diff --git a/oox/inc/oox/mathml/import.hxx b/oox/inc/oox/mathml/import.hxx
index 8c922ab..971dfec 100644
--- a/oox/inc/oox/mathml/import.hxx
+++ b/oox/inc/oox/mathml/import.hxx
@@ -49,9 +49,13 @@ class XmlStream;
 class OOX_DLLPUBLIC FormulaImportBase
 {
 public:
-    FormulaImportBase();
     virtual void readFormulaOoxml( oox::formulaimport::XmlStream& stream ) = 0;
     virtual Size getFormulaSize() const = 0;
+
+protected:
+    FormulaImportBase();
+
+    ~FormulaImportBase() {}
 };
 
 } // namespace
diff --git a/reportdesign/inc/ReportVisitor.hxx b/reportdesign/inc/ReportVisitor.hxx
index 13c080f..b228471 100644
--- a/reportdesign/inc/ReportVisitor.hxx
+++ b/reportdesign/inc/ReportVisitor.hxx
@@ -51,6 +51,9 @@ namespace reportdesign
         virtual void traverseGroupFooter(const ::com::sun::star::uno::Reference< ::com::sun::star::report::XSection>& _xSection) = 0;
 
         virtual void traverseDetail(const ::com::sun::star::uno::Reference< ::com::sun::star::report::XSection>& _xSection) = 0;
+
+    protected:
+        ~ITraverseReport() {}
     };
 
     class REPORTDESIGN_DLLPUBLIC OReportVisitor
diff --git a/reportdesign/source/filter/xml/xmlReportElementBase.hxx b/reportdesign/source/filter/xml/xmlReportElementBase.hxx
index c1d2127..692c84f 100644
--- a/reportdesign/source/filter/xml/xmlReportElementBase.hxx
+++ b/reportdesign/source/filter/xml/xmlReportElementBase.hxx
@@ -41,6 +41,9 @@ namespace rptxml
     {
     public:
         virtual void addMasterDetailPair(const ::std::pair< ::rtl::OUString,::rtl::OUString >& _aPair) = 0;
+
+    protected:
+        ~IMasterDetailFieds() {}
     };
 
     class OXMLReportElementBase : public SvXMLImportContext
diff --git a/reportdesign/source/ui/inc/CondFormat.hxx b/reportdesign/source/ui/inc/CondFormat.hxx
index 5ccd968..bc1ef7e 100644
--- a/reportdesign/source/ui/inc/CondFormat.hxx
+++ b/reportdesign/source/ui/inc/CondFormat.hxx
@@ -65,6 +65,9 @@ namespace rptui
         virtual void            moveConditionUp( size_t _nCondIndex ) = 0;
         virtual void            moveConditionDown( size_t _nCondIndex ) = 0;
         virtual ::rtl::OUString getDataField() const = 0;
+
+    protected:
+        ~IConditionalFormatAction() {}
     };
 
     /*************************************************************************
diff --git a/reportdesign/source/ui/inc/MarkedSection.hxx b/reportdesign/source/ui/inc/MarkedSection.hxx
index a879e70..2a441ab 100644
--- a/reportdesign/source/ui/inc/MarkedSection.hxx
+++ b/reportdesign/source/ui/inc/MarkedSection.hxx
@@ -54,6 +54,9 @@ namespace rptui
         * \param _nPos the position is zero based.
         */
         virtual void markSection(const sal_uInt16 _nPos) = 0;
+
+    protected:
+        ~IMarkedSection() {}
     };
 
 } // rptui
diff --git a/sal/inc/rtl/ref.hxx b/sal/inc/rtl/ref.hxx
index 83bfc60..19c77a5 100644
--- a/sal/inc/rtl/ref.hxx
+++ b/sal/inc/rtl/ref.hxx
@@ -48,6 +48,10 @@ public:
     /** @see osl_decrementInterlockedCount.
      */
     virtual oslInterlockedCount SAL_CALL release() = 0;
+
+protected:
+    ~IReference() {}
+        // avoid warnings about virtual members and non-virtual dtor
 };
 
 
diff --git a/sc/inc/filter.hxx b/sc/inc/filter.hxx
index f868b70..eb6229d 100644
--- a/sc/inc/filter.hxx
+++ b/sc/inc/filter.hxx
@@ -126,6 +126,9 @@ class ScFormatFilterPlugin {
     virtual FltError ScExportHTML( SvStream&, const String& rBaseURL, ScDocument*, const ScRange& rRange, const CharSet eDest, sal_Bool bAll,
                   const String& rStreamPath, String& rNonConvertibleChars ) = 0;
     virtual FltError ScExportRTF( SvStream&, ScDocument*, const ScRange& rRange, const CharSet eDest ) = 0;
+
+protected:
+    ~ScFormatFilterPlugin() {}
 };
 
 // scfilt plugin symbol
diff --git a/sc/inc/scabstdlg.hxx b/sc/inc/scabstdlg.hxx
index 43b0589..6e5d001 100644
--- a/sc/inc/scabstdlg.hxx
+++ b/sc/inc/scabstdlg.hxx
@@ -510,6 +510,9 @@ public:
     // for tabpage
     virtual CreateTabPage               GetTabPageCreatorFunc( sal_uInt16 nId ) = 0;
     virtual GetTabPageRanges            GetTabPageRangesFunc( sal_uInt16 nId ) = 0;
+
+protected:
+    ~ScAbstractDialogFactory() {}
 };
 #endif
 
diff --git a/sc/source/core/tool/interpr3.cxx b/sc/source/core/tool/interpr3.cxx
index 57feeaa..d19e3a8 100644
--- a/sc/source/core/tool/interpr3.cxx
+++ b/sc/source/core/tool/interpr3.cxx
@@ -65,6 +65,9 @@ class ScDistFunc
 {
 public:
     virtual double GetValue(double x) const = 0;
+
+protected:
+    ~ScDistFunc() {}
 };
 
 //  iteration for inverse distributions
@@ -1989,6 +1992,8 @@ public:
             ScGammaDistFunction( ScInterpreter& rI, double fpVal, double fAlphaVal, double fBetaVal ) :
                 rInt(rI), fp(fpVal), fAlpha(fAlphaVal), fBeta(fBetaVal) {}
 
+    virtual ~ScGammaDistFunction() {}
+
     double  GetValue( double x ) const  { return fp - rInt.GetGammaDist(x, fAlpha, fBeta); }
 };
 
@@ -2028,6 +2033,8 @@ public:
             ScBetaDistFunction( ScInterpreter& rI, double fpVal, double fAlphaVal, double fBetaVal ) :
                 rInt(rI), fp(fpVal), fAlpha(fAlphaVal), fBeta(fBetaVal) {}
 
+    virtual ~ScBetaDistFunction() {}
+
     double  GetValue( double x ) const  { return fp - rInt.GetBetaDist(x, fAlpha, fBeta); }
 };
 
@@ -2082,6 +2089,8 @@ public:
             ScTDistFunction( ScInterpreter& rI, double fpVal, double fDFVal ) :
                 rInt(rI), fp(fpVal), fDF(fDFVal) {}
 
+    virtual ~ScTDistFunction() {}
+
     double  GetValue( double x ) const  { return fp - 2 * rInt.GetTDist(x, fDF); }
 };
 
@@ -2115,6 +2124,8 @@ public:
             ScFDistFunction( ScInterpreter& rI, double fpVal, double fF1Val, double fF2Val ) :
                 rInt(rI), fp(fpVal), fF1(fF1Val), fF2(fF2Val) {}
 
+    virtual ~ScFDistFunction() {}
+
     double  GetValue( double x ) const  { return fp - rInt.GetFDist(x, fF1, fF2); }
 };
 
@@ -2149,6 +2160,8 @@ public:
             ScChiDistFunction( ScInterpreter& rI, double fpVal, double fDFVal ) :
                 rInt(rI), fp(fpVal), fDF(fDFVal) {}
 
+    virtual ~ScChiDistFunction() {}
+
     double  GetValue( double x ) const  { return fp - rInt.GetChiDist(x, fDF); }
 };
 
@@ -2183,6 +2196,8 @@ public:
             ScChiSqDistFunction( ScInterpreter& rI, double fpVal, double fDFVal ) :
                 rInt(rI), fp(fpVal), fDF(fDFVal) {}
 
+    virtual ~ScChiSqDistFunction() {}
+
     double  GetValue( double x ) const  { return fp - rInt.GetChiSqDistCDF(x, fDF); }
 };
 
diff --git a/sc/source/filter/inc/exp_op.hxx b/sc/source/filter/inc/exp_op.hxx
index 3dabe04..dd1e28c 100644
--- a/sc/source/filter/inc/exp_op.hxx
+++ b/sc/source/filter/inc/exp_op.hxx
@@ -44,6 +44,8 @@ class SotStorage;
 class ExportTyp
 {
 protected:
+                        ~ExportTyp() {}
+
     SvStream&           aOut;           // Ausgabe-Stream
     ScDocument*         pD;             // Dokument
     CharSet             eZielChar;      // Ziel-Zeichensatz
diff --git a/sc/source/filter/inc/ftools.hxx b/sc/source/filter/inc/ftools.hxx
index 4bfac09..64a5d52 100644
--- a/sc/source/filter/inc/ftools.hxx
+++ b/sc/source/filter/inc/ftools.hxx
@@ -293,6 +293,7 @@ typedef ::std::vector< ::rtl::OUString >            ScfStringVec;
 class ScFormatFilterPluginImpl : public ScFormatFilterPlugin {
   public:
     ScFormatFilterPluginImpl();
+    virtual ~ScFormatFilterPluginImpl() {}
     // various import filters
     virtual FltError ScImportLotus123( SfxMedium&, ScDocument*, CharSet eSrc = RTL_TEXTENCODING_DONTKNOW );
     virtual FltError ScImportQuattroPro( SfxMedium &rMedium, ScDocument *pDoc );
diff --git a/sc/source/ui/attrdlg/scdlgfact.hxx b/sc/source/ui/attrdlg/scdlgfact.hxx
index 9c9e0b7..bb749aa 100644
--- a/sc/source/ui/attrdlg/scdlgfact.hxx
+++ b/sc/source/ui/attrdlg/scdlgfact.hxx
@@ -389,6 +389,8 @@ class ScAbstractDialogFactory_Impl : public ScAbstractDialogFactory
 {
 
 public:
+    virtual ~ScAbstractDialogFactory_Impl() {}
+
     virtual     AbstractScImportAsciiDlg * CreateScImportAsciiDlg( Window* pParent, String aDatName, //add for ScImportAsciiDlg
                                                                     SvStream* pInStream, int nId,
                                                                     sal_Unicode cSep = '\t');
diff --git a/sc/source/ui/docshell/impex.cxx b/sc/source/ui/docshell/impex.cxx
index d4a8f80..ff2929f 100644
--- a/sc/source/ui/docshell/impex.cxx
+++ b/sc/source/ui/docshell/impex.cxx
@@ -2070,6 +2070,7 @@ class ScFormatFilterMissing : public ScFormatFilterPlugin {
     {
       OSL_FAIL("Missing file filters");
     }
+    virtual ~ScFormatFilterMissing() {}
     virtual FltError ScImportLotus123( SfxMedium&, ScDocument*, CharSet ) RETURN_ERROR
     virtual FltError ScImportQuattroPro( SfxMedium &, ScDocument * ) RETURN_ERROR
     virtual FltError ScImportExcel( SfxMedium&, ScDocument*, const EXCIMPFORMAT ) RETURN_ERROR
diff --git a/sc/source/ui/inc/dpgroupdlg.hxx b/sc/source/ui/inc/dpgroupdlg.hxx
index 7a1770a..f6c88c9 100644
--- a/sc/source/ui/inc/dpgroupdlg.hxx
+++ b/sc/source/ui/inc/dpgroupdlg.hxx
@@ -50,6 +50,9 @@ public:
     double              GetValue() const;
     void                SetValue( bool bAuto, double fValue );
 
+protected:
+    ~ScDPGroupEditHelper() {}
+
 private:
     virtual bool        ImplGetValue( double& rfValue ) const = 0;
     virtual void        ImplSetValue( double fValue ) = 0;
@@ -71,6 +74,8 @@ public:
                             RadioButton& rRbAuto, RadioButton& rRbMan,
                             ScDoubleField& rEdValue );
 
+    virtual ~ScDPNumGroupEditHelper() {}
+
 private:
     virtual bool        ImplGetValue( double& rfValue ) const;
     virtual void        ImplSetValue( double fValue );
@@ -88,6 +93,8 @@ public:
                             RadioButton& rRbAuto, RadioButton& rRbMan,
                             DateField& rEdValue, const Date& rNullDate );
 
+    virtual ~ScDPDateGroupEditHelper() {}
+
 private:
     virtual bool        ImplGetValue( double& rfValue ) const;
     virtual void        ImplSetValue( double fValue );
diff --git a/sc/source/ui/vba/vbarange.cxx b/sc/source/ui/vba/vbarange.cxx
index d8c3a9f..23a7492 100644
--- a/sc/source/ui/vba/vbarange.cxx
+++ b/sc/source/ui/vba/vbarange.cxx
@@ -1018,6 +1018,9 @@ class RangeProcessor
 {
 public:
     virtual void process( const uno::Reference< excel::XRange >& xRange ) = 0;
+
+protected:
+    ~RangeProcessor() {}
 };
 
 class RangeValueProcessor : public RangeProcessor
@@ -1025,6 +1028,7 @@ class RangeValueProcessor : public RangeProcessor
     const uno::Any& m_aVal;
 public:
     RangeValueProcessor( const uno::Any& rVal ):m_aVal( rVal ) {}
+    virtual ~RangeValueProcessor() {}
     virtual void process( const uno::Reference< excel::XRange >& xRange )
     {
         xRange->setValue( m_aVal );
@@ -1036,6 +1040,7 @@ class RangeFormulaProcessor : public RangeProcessor
     const uno::Any& m_aVal;
 public:
     RangeFormulaProcessor( const uno::Any& rVal ):m_aVal( rVal ) {}
+    virtual ~RangeFormulaProcessor() {}
     virtual void process( const uno::Reference< excel::XRange >& xRange )
     {
         xRange->setFormula( m_aVal );
@@ -1047,6 +1052,7 @@ class RangeCountProcessor : public RangeProcessor
     sal_Int32 nCount;
 public:
     RangeCountProcessor():nCount(0){}
+    virtual ~RangeCountProcessor() {}
     virtual void process( const uno::Reference< excel::XRange >& xRange )
     {
         nCount = nCount + xRange->getCount();
diff --git a/sd/inc/CustomAnimationEffect.hxx b/sd/inc/CustomAnimationEffect.hxx
index a55acd3..5d0c5e5 100644
--- a/sd/inc/CustomAnimationEffect.hxx
+++ b/sd/inc/CustomAnimationEffect.hxx
@@ -240,6 +240,9 @@ class ISequenceListener
 {
 public:
     virtual void notify_change() = 0;
+
+protected:
+    ~ISequenceListener() {}
 };
 
 /** this class keeps track of a group of animations that build up
diff --git a/sd/inc/sdabstdlg.hxx b/sd/inc/sdabstdlg.hxx
index 09aabe3..8d3e6c0 100644
--- a/sd/inc/sdabstdlg.hxx
+++ b/sd/inc/sdabstdlg.hxx
@@ -224,6 +224,9 @@ public:
     virtual CreateTabPage               GetSdPrintOptionsTabPageCreatorFunc() = 0;
     virtual CreateTabPage               GetSdOptionsMiscTabPageCreatorFunc() = 0;
     virtual CreateTabPage               GetSdOptionsSnapTabPageCreatorFunc() = 0;
+
+protected:
+    ~SdAbstractDialogFactory() {}
 };
 #endif
 
diff --git a/sd/source/ui/dlg/sddlgfact.hxx b/sd/source/ui/dlg/sddlgfact.hxx
index 9a0f5f8..829932f 100644
--- a/sd/source/ui/dlg/sddlgfact.hxx
+++ b/sd/source/ui/dlg/sddlgfact.hxx
@@ -259,6 +259,8 @@ class SdAbstractDialogFactory_Impl : public SdAbstractDialogFactory
 {
 
 public:
+    virtual ~SdAbstractDialogFactory_Impl() {}
+
     virtual VclAbstractDialog*          CreateBreakDlg(::Window* pWindow, ::sd::DrawView* pDrView, ::sd::DrawDocShell* pShell, sal_uLong nSumActionCount, sal_uLong nObjCount );
     virtual AbstractCopyDlg*            CreateCopyDlg( ::Window* pWindow, const SfxItemSet& rInAttrs, const rtl::Reference<XColorList> &pColTab, ::sd::View* pView );
     virtual AbstractSdCustomShowDlg*    CreateSdCustomShowDlg( ::Window* pWindow, SdDrawDocument& rDrawDoc );
diff --git a/sd/source/ui/inc/ViewShellBase.hxx b/sd/source/ui/inc/ViewShellBase.hxx
index e8e6f39..6c6ee69 100644
--- a/sd/source/ui/inc/ViewShellBase.hxx
+++ b/sd/source/ui/inc/ViewShellBase.hxx
@@ -263,6 +263,9 @@ class ICustomhandleSupplier
 {
 public:
     virtual void addCustomHandler( SdrView& rSourceView, ViewShell::ShellType eShellType, SdrHdlList& rHandlerList ) = 0;
+
+protected:
+    ~ICustomhandleSupplier() {}
 };
 
 } // end of namespace sd
diff --git a/sd/source/ui/inc/taskpane/ILayoutableWindow.hxx b/sd/source/ui/inc/taskpane/ILayoutableWindow.hxx
index 138353e..9a22bc3 100644
--- a/sd/source/ui/inc/taskpane/ILayoutableWindow.hxx
+++ b/sd/source/ui/inc/taskpane/ILayoutableWindow.hxx
@@ -44,6 +44,9 @@ public:
         resized.
     */
     virtual void RequestResize (void) = 0;
+
+protected:
+    ~ILayouter() {}
 };
 
 
diff --git a/sd/source/ui/inc/tools/AsynchronousTask.hxx b/sd/source/ui/inc/tools/AsynchronousTask.hxx
index f27508c..f05d0cc 100644
--- a/sd/source/ui/inc/tools/AsynchronousTask.hxx
+++ b/sd/source/ui/inc/tools/AsynchronousTask.hxx
@@ -49,6 +49,9 @@ public:
         returned.
     */
     virtual bool HasNextStep (void) = 0;
+
+protected:
+    ~AsynchronousTask() {}
 };
 
 } } // end of namespace ::sd::tools
diff --git a/sd/source/ui/slidesorter/cache/SlsBitmapCompressor.hxx b/sd/source/ui/slidesorter/cache/SlsBitmapCompressor.hxx
index d1b67da..a8fe6aa 100644
--- a/sd/source/ui/slidesorter/cache/SlsBitmapCompressor.hxx
+++ b/sd/source/ui/slidesorter/cache/SlsBitmapCompressor.hxx
@@ -66,6 +66,9 @@ public:
         the returned bitmap as is or if a new preview has to be created.
     */
     virtual bool IsLossless (void) const = 0;
+
+protected:
+    ~BitmapCompressor() {}
 };
 
 
@@ -78,6 +81,9 @@ class BitmapReplacement
 {
 public:
     virtual sal_Int32 GetMemorySize (void) const { return 0; }
+
+protected:
+    ~BitmapReplacement() {}
 };
 
 
diff --git a/sd/source/ui/slidesorter/inc/cache/SlsCacheContext.hxx b/sd/source/ui/slidesorter/inc/cache/SlsCacheContext.hxx
index aaf99ad..7f094b0 100644
--- a/sd/source/ui/slidesorter/inc/cache/SlsCacheContext.hxx
+++ b/sd/source/ui/slidesorter/inc/cache/SlsCacheContext.hxx
@@ -47,6 +47,8 @@ typedef const SdrPage* CacheKey;
 class CacheContext
 {
 public:
+    virtual ~CacheContext() {}
+
     /** This method is called when the asynchronous creation of a preview
         has been finished.
         @param aKey
diff --git a/sd/source/ui/slidesorter/inc/model/SlsEnumeration.hxx b/sd/source/ui/slidesorter/inc/model/SlsEnumeration.hxx
index fe4b1cc..0de68b5 100644
--- a/sd/source/ui/slidesorter/inc/model/SlsEnumeration.hxx
+++ b/sd/source/ui/slidesorter/inc/model/SlsEnumeration.hxx
@@ -41,6 +41,8 @@ template <class T>
 class Enumeration
 {
 public:
+    virtual ~Enumeration() {}
+
     virtual bool HasMoreElements (void) const = 0;
     /** Returns T instead of T& so that it can handle shared pointers.
     */
diff --git a/sd/source/ui/slidesorter/inc/view/SlsILayerPainter.hxx b/sd/source/ui/slidesorter/inc/view/SlsILayerPainter.hxx
index 98ef3f0..a01b402 100644
--- a/sd/source/ui/slidesorter/inc/view/SlsILayerPainter.hxx
+++ b/sd/source/ui/slidesorter/inc/view/SlsILayerPainter.hxx
@@ -40,6 +40,8 @@ namespace sd { namespace slidesorter { namespace view {
 class ILayerInvalidator
 {
 public:
+    virtual ~ILayerInvalidator() {}
+
     virtual void Invalidate (const Rectangle& rInvalidationBox) = 0;
 };
 typedef ::boost::shared_ptr<ILayerInvalidator> SharedILayerInvalidator;
@@ -47,6 +49,8 @@ typedef ::boost::shared_ptr<ILayerInvalidator> SharedILayerInvalidator;
 class ILayerPainter
 {
 public:
+    virtual ~ILayerPainter() {}
+
     virtual void SetLayerInvalidator (
         const SharedILayerInvalidator& rpInvalidator) = 0;
     virtual void Paint (
diff --git a/sd/source/ui/slidesorter/view/SlsInsertAnimator.cxx b/sd/source/ui/slidesorter/view/SlsInsertAnimator.cxx
index 0a2408d..06ef5d2 100644
--- a/sd/source/ui/slidesorter/view/SlsInsertAnimator.cxx

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list