[Libreoffice-commits] core.git: chart2/source compilerplugins/clang connectivity/source desktop/source include/basegfx include/comphelper include/connectivity include/filter include/svx include/tools include/vcl sc/inc sw/inc sw/source vcl/inc

Stephan Bergmann sbergman at redhat.com
Wed Oct 4 11:46:07 UTC 2017


 chart2/source/inc/CommonFunctors.hxx           |    8 -
 chart2/source/inc/PropertyHelper.hxx           |    2 
 compilerplugins/clang/dllmacro.cxx             |  112 -------------------------
 compilerplugins/clang/dllprivate.cxx           |   79 +++++++++++++++++
 connectivity/source/inc/RowFunctionParser.hxx  |    2 
 desktop/source/deployment/inc/dp_ucb.h         |    2 
 include/basegfx/color/bcolor.hxx               |    2 
 include/basegfx/matrix/b2dhommatrixtools.hxx   |    2 
 include/basegfx/numeric/ftools.hxx             |    2 
 include/basegfx/pixel/bpixel.hxx               |    2 
 include/comphelper/propertycontainerhelper.hxx |    2 
 include/connectivity/FValue.hxx                |    4 
 include/filter/msfilter/dffrecordheader.hxx    |    2 
 include/filter/msfilter/mscodec.hxx            |    4 
 include/filter/msfilter/svdfppt.hxx            |    2 
 include/filter/msfilter/util.hxx               |    2 
 include/svx/transfrmhelper.hxx                 |    2 
 include/svx/xmlexchg.hxx                       |    2 
 include/tools/svborder.hxx                     |    2 
 include/vcl/bitmap.hxx                         |    2 
 include/vcl/commandevent.hxx                   |    8 -
 include/vcl/pointr.hxx                         |    2 
 sc/inc/colorscale.hxx                          |    2 
 sw/inc/ndindex.hxx                             |    2 
 sw/source/filter/inc/fltshell.hxx              |    2 
 vcl/inc/headless/svpgdi.hxx                    |    2 
 26 files changed, 111 insertions(+), 144 deletions(-)

New commits:
commit 7f0bf6220bd69cf119878ebd1352b55a042b88ed
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Wed Oct 4 10:16:31 2017 +0200

    Revert "check for unnecessary DLLPUBLIC annotations"
    
    This reverts commit a599eeab786ecbe1b5b6509e3c792e5c1ba31248, plus follow-up
    fa4431449d0306e8179f53a2a69c549800bd24bd "Avoid bogus loplugin:dllmacro
    'unnecessary *DLLPUBLIC declaration ...'".  See (abandoned)
    <https://gerrit.libreoffice.org/#/c/42983/> "loplugin:dllmacro: Handle implicit
    member functions" how this would have needed to be extended to give consistent
    results across Linux and macOS, but then would have started to remove DLLPUBLIC
    from entities that apparently need to at least have default type visibility on
    macOS and started to make tests fail.

diff --git a/chart2/source/inc/CommonFunctors.hxx b/chart2/source/inc/CommonFunctors.hxx
index e8cdb12d6ba1..8b11df32f3ea 100644
--- a/chart2/source/inc/CommonFunctors.hxx
+++ b/chart2/source/inc/CommonFunctors.hxx
@@ -50,7 +50,7 @@ template< typename T >
     <p>In case no number can be generated from the Any, NaN (see
     rtl::math::SetNAN()) is returned.</p>
 */
-struct AnyToDouble
+struct OOO_DLLPUBLIC_CHARTTOOLS AnyToDouble
 {
     double operator() ( const css::uno::Any & rAny )
     {
@@ -64,7 +64,7 @@ struct AnyToDouble
 /** unary function to convert css::uno::Any into an
     OUString.
 */
-struct AnyToString
+struct OOO_DLLPUBLIC_CHARTTOOLS AnyToString
 {
     OUString operator() ( const css::uno::Any & rAny )
     {
@@ -93,7 +93,7 @@ struct AnyToString
 
     <p>For conversion rtl::math::StringToDouble is used.</p>
  */
-struct OUStringToDouble
+struct OOO_DLLPUBLIC_CHARTTOOLS OUStringToDouble
 {
     double operator() ( const OUString & rStr )
     {
@@ -111,7 +111,7 @@ struct OUStringToDouble
 
     <p>For conversion rtl::math::DoubleToOUString is used.</p>
  */
-struct DoubleToOUString
+struct OOO_DLLPUBLIC_CHARTTOOLS DoubleToOUString
 {
     OUString operator() ( double fNumber )
     {
diff --git a/chart2/source/inc/PropertyHelper.hxx b/chart2/source/inc/PropertyHelper.hxx
index 4051d00f9e78..52a38edfed6c 100644
--- a/chart2/source/inc/PropertyHelper.hxx
+++ b/chart2/source/inc/PropertyHelper.hxx
@@ -138,7 +138,7 @@ OOO_DLLPUBLIC_CHARTTOOLS void setEmptyPropertyValueDefault( tPropertyValueMap &
 
 } // namespace PropertyHelper
 
-struct PropertyNameLess
+struct OOO_DLLPUBLIC_CHARTTOOLS PropertyNameLess
 {
     bool operator() ( const css::beans::Property & first,
                              const css::beans::Property & second )
diff --git a/compilerplugins/clang/dllmacro.cxx b/compilerplugins/clang/dllmacro.cxx
deleted file mode 100644
index 66664888419c..000000000000
--- a/compilerplugins/clang/dllmacro.cxx
+++ /dev/null
@@ -1,112 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-#include "plugin.hxx"
-#include <iostream>
-#include <fstream>
-
-/**
-  Check the usage of the various DLL visibility macros.
- */
-class DllMacro final:
-    public RecursiveASTVisitor<DllMacro>, public loplugin::Plugin
-{
-public:
-    explicit DllMacro(InstantiationData const & data): Plugin(data) {}
-
-    bool VisitNamedDecl(NamedDecl const * decl);
-
-private:
-    void run() override {
-        // DISABLE_DYNLOADING makes SAL_DLLPUBLIC_{EXPORT,IMPORT,TEMPLATE} expand
-        // to visibility("hidden") attributes, which would cause bogus warnings
-        // here (e.g., in UBSan builds that explicitly define DISABLE_DYNLOADING
-        // in jurt/source/pipe/staticsalhack.cxx); alternatively, change
-        // include/sal/types.h to make those SAL_DLLPUBLIC_* expand to nothing
-        // for DISABLE_DYNLOADING:
-        if (!compiler.getPreprocessor().getIdentifierInfo("DISABLE_DYNLOADING")
-            ->hasMacroDefinition())
-        {
-            TraverseDecl(compiler.getASTContext().getTranslationUnitDecl());
-        }
-    }
-};
-
-bool DllMacro::VisitNamedDecl(NamedDecl const * decl) {
-    if (!decl->getLocation().isInvalid() && ignoreLocation(decl)) {
-        return true;
-    }
-    auto a = decl->getAttr<VisibilityAttr>();
-    if (a == nullptr) {
-        return true;
-    }
-    if (compiler.getSourceManager().isMacroBodyExpansion(
-            decl->getLocation())
-        && (Lexer::getImmediateMacroName(
-                decl->getLocation(), compiler.getSourceManager(),
-                compiler.getLangOpts())
-            == "Q_OBJECT")) // from /usr/include/QtCore/qobjectdefs.h
-    {
-        return true;
-    }
-    if (a->getVisibility() == VisibilityAttr::Hidden) {
-        auto p = dyn_cast<RecordDecl>(decl->getDeclContext());
-        if (p == nullptr) {
-            report(
-                DiagnosticsEngine::Warning,
-                "top-level declaration redundantly marked as DLLPRIVATE",
-                a->getLocation())
-                << decl->getSourceRange();
-        } else if (p->getVisibility() == HiddenVisibility) {
-            report(
-                DiagnosticsEngine::Warning,
-                ("declaration nested in DLLPRIVATE declaration redundantly"
-                  " marked as DLLPRIVATE"),
-                a->getLocation())
-                << decl->getSourceRange();
-            report(
-                DiagnosticsEngine::Note, "parent declaration is here",
-                p->getLocation())
-                << p->getSourceRange();
-        }
-    }
-    else if (a->getVisibility() == VisibilityAttr::Default && !a->isInherited())
-    {
-        auto p = dyn_cast<CXXRecordDecl>(decl);
-        if (p && p->isCompleteDefinition() && !p->getDescribedClassTemplate()) {
-            // don't know what these macros mean, leave them alone
-            auto macroLoc = a->getLocation();
-            while (compiler.getSourceManager().isMacroBodyExpansion(macroLoc)) {
-                auto macroName = Lexer::getImmediateMacroName(
-                        macroLoc, compiler.getSourceManager(),
-                        compiler.getLangOpts());
-                if (macroName == "SAL_EXCEPTION_DLLPUBLIC_EXPORT")
-                    return true;
-                if (macroName == "VCL_PLUGIN_PUBLIC")
-                    return true;
-                macroLoc = compiler.getSourceManager().getImmediateMacroCallerLoc(macroLoc);
-            }
-            for (auto it = p->method_begin(); it != p->method_end(); ++it) {
-                if (!it->hasInlineBody()) {
-                    return true;
-                }
-            }
-            report(
-                DiagnosticsEngine::Warning,
-                "unnecessary *DLLPUBLIC declaration for class completely defined in header file",
-                a->getLocation())
-                << decl->getSourceRange();
-        }
-    }
-    return true;
-}
-
-static loplugin::Plugin::Registration<DllMacro> reg("dllmacro");
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/compilerplugins/clang/dllprivate.cxx b/compilerplugins/clang/dllprivate.cxx
new file mode 100644
index 000000000000..05cf26d7d5d2
--- /dev/null
+++ b/compilerplugins/clang/dllprivate.cxx
@@ -0,0 +1,79 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include "plugin.hxx"
+
+namespace {
+
+class Visitor final:
+    public RecursiveASTVisitor<Visitor>, public loplugin::Plugin
+{
+public:
+    explicit Visitor(InstantiationData const & data): Plugin(data) {}
+
+    bool VisitNamedDecl(NamedDecl const * decl) {
+        if (!decl->getLocation().isInvalid()&&ignoreLocation(decl)) {
+            return true;
+        }
+        auto a = decl->getAttr<VisibilityAttr>();
+        if (a == nullptr || a->getVisibility() != VisibilityAttr::Hidden) {
+            return true;
+        }
+        if (compiler.getSourceManager().isMacroBodyExpansion(
+                decl->getLocation())
+            && (Lexer::getImmediateMacroName(
+                    decl->getLocation(), compiler.getSourceManager(),
+                    compiler.getLangOpts())
+                == "Q_OBJECT")) // from /usr/include/QtCore/qobjectdefs.h
+        {
+            return true;
+        }
+        auto p = dyn_cast<RecordDecl>(decl->getDeclContext());
+        if (p == nullptr) {
+            report(
+                DiagnosticsEngine::Warning,
+                "top-level declaration redundantly marked as DLLPRIVATE",
+                a->getLocation())
+                << decl->getSourceRange();
+        } else if (p->getVisibility() == HiddenVisibility) {
+            report(
+                DiagnosticsEngine::Warning,
+                ("declaration nested in DLLPRIVATE declaration redundantly"
+                 " marked as DLLPRIVATE"),
+                a->getLocation())
+                << decl->getSourceRange();
+            report(
+                DiagnosticsEngine::Note, "parent declaration is here",
+                p->getLocation())
+                << p->getSourceRange();
+        }
+        return true;
+    }
+
+private:
+    void run() override {
+        // DISABLE_DYNLOADING makes SAL_DLLPUBLIC_{EXPORT,IMPORT,TEMPLATE} expand
+        // to visibility("hidden") attributes, which would cause bogus warnings
+        // here (e.g., in UBSan builds that explicitly define DISABLE_DYNLOADING
+        // in jurt/source/pipe/staticsalhack.cxx); alternatively, change
+        // include/sal/types.h to make those SAL_DLLPUBLIC_* expand to nothing
+        // for DISABLE_DYNLOADING:
+        if (!compiler.getPreprocessor().getIdentifierInfo("DISABLE_DYNLOADING")
+            ->hasMacroDefinition())
+        {
+            TraverseDecl(compiler.getASTContext().getTranslationUnitDecl());
+        }
+    }
+};
+
+static loplugin::Plugin::Registration<Visitor> reg("dllprivate");
+
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
diff --git a/connectivity/source/inc/RowFunctionParser.hxx b/connectivity/source/inc/RowFunctionParser.hxx
index 5c494728a9f5..df2c7ba2bf4e 100644
--- a/connectivity/source/inc/RowFunctionParser.hxx
+++ b/connectivity/source/inc/RowFunctionParser.hxx
@@ -55,7 +55,7 @@ public:
 /** This exception is thrown, when the arithmetic expression
     parser failed to parse a string.
     */
-struct ParseError
+struct OOO_DLLPUBLIC_DBTOOLS ParseError
 {
     ParseError( const char* ) {}
 };
diff --git a/desktop/source/deployment/inc/dp_ucb.h b/desktop/source/deployment/inc/dp_ucb.h
index 19b6e1b9702b..3c97fc6a1e89 100644
--- a/desktop/source/deployment/inc/dp_ucb.h
+++ b/desktop/source/deployment/inc/dp_ucb.h
@@ -36,7 +36,7 @@ class Content;
 
 namespace dp_misc {
 
-struct StrTitle
+struct DESKTOP_DEPLOYMENTMISC_DLLPUBLIC StrTitle
 {
     static css::uno::Sequence< OUString > getTitleSequence()
     {
diff --git a/include/basegfx/color/bcolor.hxx b/include/basegfx/color/bcolor.hxx
index c612a5d6dfd8..300f8db81e81 100644
--- a/include/basegfx/color/bcolor.hxx
+++ b/include/basegfx/color/bcolor.hxx
@@ -42,7 +42,7 @@ namespace basegfx
 
         @see B3DTuple
     */
-    class SAL_WARN_UNUSED BColor : public B3DTuple
+    class SAL_WARN_UNUSED BASEGFX_DLLPUBLIC BColor : public B3DTuple
     {
     public:
         /** Create a Color with red, green and blue components from [0.0 to 1.0]
diff --git a/include/basegfx/matrix/b2dhommatrixtools.hxx b/include/basegfx/matrix/b2dhommatrixtools.hxx
index f0559fdf8f11..c60a6ac96c21 100644
--- a/include/basegfx/matrix/b2dhommatrixtools.hxx
+++ b/include/basegfx/matrix/b2dhommatrixtools.hxx
@@ -148,7 +148,7 @@ namespace basegfx
 {
     namespace utils
     {
-        class B2DHomMatrixBufferedDecompose
+        class BASEGFX_DLLPUBLIC B2DHomMatrixBufferedDecompose
         {
         private:
             B2DVector              maScale;
diff --git a/include/basegfx/numeric/ftools.hxx b/include/basegfx/numeric/ftools.hxx
index cf7a05316bc7..35a1a35111b2 100644
--- a/include/basegfx/numeric/ftools.hxx
+++ b/include/basegfx/numeric/ftools.hxx
@@ -148,7 +148,7 @@ namespace basegfx
      */
     BASEGFX_DLLPUBLIC double snapToNearestMultiple(double v, const double fStep);
 
-    class fTools
+    class BASEGFX_DLLPUBLIC fTools
     {
     public:
         /// Get threshold value for equalZero and friends
diff --git a/include/basegfx/pixel/bpixel.hxx b/include/basegfx/pixel/bpixel.hxx
index 7eee516c2cff..ed1dadc06a09 100644
--- a/include/basegfx/pixel/bpixel.hxx
+++ b/include/basegfx/pixel/bpixel.hxx
@@ -27,7 +27,7 @@
 
 namespace basegfx
 {
-    class BPixel
+    class BASEGFX_DLLPUBLIC BPixel
     {
     protected:
         union
diff --git a/include/comphelper/propertycontainerhelper.hxx b/include/comphelper/propertycontainerhelper.hxx
index 23f9757e0336..513aa88f4993 100644
--- a/include/comphelper/propertycontainerhelper.hxx
+++ b/include/comphelper/propertycontainerhelper.hxx
@@ -32,7 +32,7 @@ namespace comphelper
 
 
 // infos about one single property
-struct PropertyDescription
+struct COMPHELPER_DLLPUBLIC PropertyDescription
 {
     // the possibilities where a property holding object may be located
     enum class LocationType
diff --git a/include/connectivity/FValue.hxx b/include/connectivity/FValue.hxx
index 9fa8d09199e6..d2fbfd47e9ba 100644
--- a/include/connectivity/FValue.hxx
+++ b/include/connectivity/FValue.hxx
@@ -472,7 +472,7 @@ namespace connectivity
 
 
     /// TSetBound is a functor to set the bound value with e.q. for_each call
-    struct TSetBound
+    struct OOO_DLLPUBLIC_DBTOOLS TSetBound
     {
         bool m_bBound;
         TSetBound(bool _bBound) : m_bBound(_bBound){}
@@ -482,7 +482,7 @@ namespace connectivity
 
 
     /// TSetBound is a functor to set the bound value with e.q. for_each call
-    struct TSetRefBound
+    struct OOO_DLLPUBLIC_DBTOOLS TSetRefBound
     {
         bool m_bBound;
         TSetRefBound(bool _bBound) : m_bBound(_bBound){}
diff --git a/include/filter/msfilter/dffrecordheader.hxx b/include/filter/msfilter/dffrecordheader.hxx
index cddc2e3d2447..acd0d2539889 100644
--- a/include/filter/msfilter/dffrecordheader.hxx
+++ b/include/filter/msfilter/dffrecordheader.hxx
@@ -26,7 +26,7 @@
 #include <tools/solar.h>
 #include <tools/stream.hxx>
 
-class DffRecordHeader
+class MSFILTER_DLLPUBLIC DffRecordHeader
 {
 public:
     sal_uInt8   nRecVer; // may be DFF_PSFLAG_CONTAINER
diff --git a/include/filter/msfilter/mscodec.hxx b/include/filter/msfilter/mscodec.hxx
index 8a409800407a..b0ab818449ae 100644
--- a/include/filter/msfilter/mscodec.hxx
+++ b/include/filter/msfilter/mscodec.hxx
@@ -476,13 +476,13 @@ struct MSFILTER_DLLPUBLIC EncryptionVerifierRC4
     EncryptionVerifierRC4();
 };
 
-struct StandardEncryptionInfo
+struct MSFILTER_DLLPUBLIC StandardEncryptionInfo
 {
     EncryptionStandardHeader header;
     EncryptionVerifierAES    verifier;
 };
 
-struct RC4EncryptionInfo
+struct MSFILTER_DLLPUBLIC RC4EncryptionInfo
 {
     EncryptionStandardHeader header;
     EncryptionVerifierRC4 verifier;
diff --git a/include/filter/msfilter/svdfppt.hxx b/include/filter/msfilter/svdfppt.hxx
index 2895b98fbf0b..2be1cd00dbb0 100644
--- a/include/filter/msfilter/svdfppt.hxx
+++ b/include/filter/msfilter/svdfppt.hxx
@@ -117,7 +117,7 @@ struct SdHyperlinkEntry
 };
 
 // Helper class for reading the PPT InteractiveInfoAtom
-struct PptInteractiveInfoAtom
+struct MSFILTER_DLLPUBLIC PptInteractiveInfoAtom
 {
     sal_uInt32          nSoundRef;
     sal_uInt32          nExHyperlinkId;
diff --git a/include/filter/msfilter/util.hxx b/include/filter/msfilter/util.hxx
index 1d3bae385677..8aa01f5be952 100644
--- a/include/filter/msfilter/util.hxx
+++ b/include/filter/msfilter/util.hxx
@@ -70,7 +70,7 @@ MSFILTER_DLLPUBLIC OString ConvertColor( const Color &rColor, bool bAutoColor =
 
 
 /** Paper size in 1/100 millimeters. */
-struct ApiPaperSize
+struct MSFILTER_DLLPUBLIC ApiPaperSize
 {
     sal_Int32           mnWidth;
     sal_Int32           mnHeight;
diff --git a/include/svx/transfrmhelper.hxx b/include/svx/transfrmhelper.hxx
index 481814b298c5..d5f293dbc10a 100644
--- a/include/svx/transfrmhelper.hxx
+++ b/include/svx/transfrmhelper.hxx
@@ -24,7 +24,7 @@
 #include <tools/fldunit.hxx>
 #include <tools/mapunit.hxx>
 
-class TransfrmHelper
+class SVX_DLLPUBLIC TransfrmHelper
 {
 public:
     static void ConvertRect(basegfx::B2DRange& rRange, const sal_uInt16 nDigits, const MapUnit ePoolUnit, const FieldUnit eDlgUnit)
diff --git a/include/svx/xmlexchg.hxx b/include/svx/xmlexchg.hxx
index 044422e15406..6d2c0bfc1bae 100644
--- a/include/svx/xmlexchg.hxx
+++ b/include/svx/xmlexchg.hxx
@@ -42,7 +42,7 @@ namespace svx
     //= OXFormsDescriptor
 
 
-    struct OXFormsDescriptor {
+    struct SVX_DLLPUBLIC OXFormsDescriptor {
 
         OUString szName;
         OUString szServiceName;
diff --git a/include/tools/svborder.hxx b/include/tools/svborder.hxx
index e1fa1b5356b1..9eef88819847 100644
--- a/include/tools/svborder.hxx
+++ b/include/tools/svborder.hxx
@@ -23,7 +23,7 @@
 #include <tools/toolsdllapi.h>
 #include <tools/gen.hxx>
 
-class SAL_WARN_UNUSED SvBorder
+class SAL_WARN_UNUSED TOOLS_DLLPUBLIC SvBorder
 {
     long nTop, nRight, nBottom, nLeft;
 
diff --git a/include/vcl/bitmap.hxx b/include/vcl/bitmap.hxx
index 904530b3e5f0..0be13c12bf3e 100644
--- a/include/vcl/bitmap.hxx
+++ b/include/vcl/bitmap.hxx
@@ -110,7 +110,7 @@ enum class BmpFilter
     Unknown = 65535
 };
 
-class BmpFilterParam
+class VCL_DLLPUBLIC BmpFilterParam
 {
 public:
 
diff --git a/include/vcl/commandevent.hxx b/include/vcl/commandevent.hxx
index 464734fe4f94..778348b3d1a3 100644
--- a/include/vcl/commandevent.hxx
+++ b/include/vcl/commandevent.hxx
@@ -206,7 +206,7 @@ enum class ShowDialogId
     About             = 2,
 };
 
-class CommandDialogData
+class VCL_DLLPUBLIC CommandDialogData
 {
     ShowDialogId   m_nDialogId;
 public:
@@ -242,7 +242,7 @@ enum class MediaCommand
     NextTrackHold         = 21,// Button Right holding pressed.
 };
 
-class CommandMediaData
+class VCL_DLLPUBLIC CommandMediaData
 {
     MediaCommand m_nMediaId;
     bool m_bPassThroughToOS;
@@ -270,7 +270,7 @@ public:
     sal_uLong          GetEnd() const { return mnEnd; }
 };
 
-class CommandSwipeData
+class VCL_DLLPUBLIC CommandSwipeData
 {
     double mnVelocityX;
 public:
@@ -286,7 +286,7 @@ public:
 };
 
 
-class CommandLongPressData
+class VCL_DLLPUBLIC CommandLongPressData
 {
     double mnX;
     double mnY;
diff --git a/include/vcl/pointr.hxx b/include/vcl/pointr.hxx
index 405a5a875e38..8370b9f9d296 100644
--- a/include/vcl/pointr.hxx
+++ b/include/vcl/pointr.hxx
@@ -23,7 +23,7 @@
 #include <vcl/dllapi.h>
 #include <vcl/ptrstyle.hxx>
 
-class Pointer
+class VCL_DLLPUBLIC Pointer
 {
     PointerStyle    meStyle;
 
diff --git a/sc/inc/colorscale.hxx b/sc/inc/colorscale.hxx
index 2a2004e5673b..0d33f1bb7146 100644
--- a/sc/inc/colorscale.hxx
+++ b/sc/inc/colorscale.hxx
@@ -91,7 +91,7 @@ enum ScAxisPosition
 
 }
 
-struct ScDataBarFormatData
+struct SC_DLLPUBLIC ScDataBarFormatData
 {
     ScDataBarFormatData():
         maAxisColor(COL_BLACK),
diff --git a/sw/inc/ndindex.hxx b/sw/inc/ndindex.hxx
index 494ebb85e017..51c716d85a5a 100644
--- a/sw/inc/ndindex.hxx
+++ b/sw/inc/ndindex.hxx
@@ -129,7 +129,7 @@ inline std::ostream &operator <<(std::ostream& s, const SwNodeIndex& index)
 
 // SwRange
 
-class SwNodeRange
+class SW_DLLPUBLIC SwNodeRange
 {
 public:
     SwNodeIndex aStart;
diff --git a/sw/source/filter/inc/fltshell.hxx b/sw/source/filter/inc/fltshell.hxx
index c021f8514c9f..34f1ab8862dc 100644
--- a/sw/source/filter/inc/fltshell.hxx
+++ b/sw/source/filter/inc/fltshell.hxx
@@ -47,7 +47,7 @@ inline bool SwFltGetFlag(sal_uLong nFieldFlags, int no)
 
 //Subvert the Node/Content system to get positions which don't update as
 //content is appended to them
-struct SwFltPosition
+struct SW_DLLPUBLIC SwFltPosition
 {
 public:
     SwNodeIndex m_nNode;
diff --git a/vcl/inc/headless/svpgdi.hxx b/vcl/inc/headless/svpgdi.hxx
index 7130d1153d6b..5879c1bfdf44 100644
--- a/vcl/inc/headless/svpgdi.hxx
+++ b/vcl/inc/headless/svpgdi.hxx
@@ -71,7 +71,7 @@ typedef void (*damageHandler)(void* handle,
                               sal_Int32 nExtentsX, sal_Int32 nExtentsY,
                               sal_Int32 nExtentsWidth, sal_Int32 nExtentsHeight);
 
-struct DamageHandler
+struct VCL_DLLPUBLIC DamageHandler
 {
     void *handle;
     damageHandler damaged;


More information about the Libreoffice-commits mailing list