[Libreoffice-commits] core.git: include/vcl sw/inc sw/source

Stephan Bergmann (via logerrit) logerrit at kemper.freedesktop.org
Thu Nov 7 14:17:58 UTC 2019


 include/vcl/salnativewidgets.hxx |   10 +++++-----
 sw/inc/SwNodeNum.hxx             |    2 +-
 sw/inc/SwNumberTree.hxx          |    2 +-
 sw/inc/chpfld.hxx                |    2 +-
 sw/inc/flypos.hxx                |    2 +-
 sw/inc/fmtcntnt.hxx              |    2 +-
 sw/inc/swtblfmt.hxx              |    4 ++--
 sw/inc/unotbl.hxx                |    2 +-
 sw/source/core/inc/frame.hxx     |    2 +-
 9 files changed, 14 insertions(+), 14 deletions(-)

New commits:
commit d5cb1c694cb52e83781363d292a6d2d80fbd9c51
Author:     Stephan Bergmann <sbergman at redhat.com>
AuthorDate: Thu Nov 7 13:08:29 2019 +0100
Commit:     Stephan Bergmann <sbergman at redhat.com>
CommitDate: Thu Nov 7 15:17:07 2019 +0100

    Looks like UBSan still needs various RTTI for some reason
    
    After 5d7af3c38b618d438e065da9d90668e7c4baa849 "make some classes
    module-private" various tests in my Linux ASan+UBSan build failed due to missing
    symbols.
    
    Identified the problematic types with
    
    > make check screenshot gb_SUPPRESS_TESTS=x && for i in $(find instdir/program workdir/LinkTarget/CppunitTest -type f); do LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}instdir/program:workdir/UnpackedTarball/cppunit/src/cppunit/.libs ldd -r "$i" 2>/dev/null | grep 'undefined symbol: _ZTI'; done
    
    and fixed the ensuing
    
    > sw/source/core/SwNumberTree/SwNodeNum.cxx:190:32: error: dynamic_cast from 'SwNumberTreeNode' with hidden type visibility to 'SwNodeNum' with default type visibility [loplugin:dyncastvisibility]
    >             SwNodeNum* pChild( dynamic_cast<SwNodeNum*>(pNode) );
    >                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    > sw/inc/SwNumberTree.hxx:114:7: note: base class 'SwNumberTreeNode' with hidden type visibility defined here [loplugin:dyncastvisibility]
    > class SwNumberTreeNode
    > ~~~~~~^~~~~~~~~~~~~~~~
    > sw/inc/SwNodeNum.hxx:29:26: note: derived class 'SwNodeNum' with default type visibility defined here [loplugin:dyncastvisibility]
    > class SAL_DLLPUBLIC_RTTI SwNodeNum : public SwNumberTreeNode
    > ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    fallout.
    
    Change-Id: I7abafdb4d02216e1a047f886d5e72ad3420115ce
    Reviewed-on: https://gerrit.libreoffice.org/82210
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <sbergman at redhat.com>

diff --git a/include/vcl/salnativewidgets.hxx b/include/vcl/salnativewidgets.hxx
index 47ff2c8ee7ce..4ae64ace4602 100644
--- a/include/vcl/salnativewidgets.hxx
+++ b/include/vcl/salnativewidgets.hxx
@@ -289,7 +289,7 @@ class VCL_DLLPUBLIC ImplControlValue
  *
  *   Value container for scrollbars.
  */
-class ScrollbarValue final : public ImplControlValue
+class SAL_DLLPUBLIC_RTTI ScrollbarValue final : public ImplControlValue
 {
     public:
         long            mnMin;
@@ -319,7 +319,7 @@ class ScrollbarValue final : public ImplControlValue
         ScrollbarValue & operator =(ScrollbarValue &&) = delete; // due to ImplControlValue
 };
 
-class SliderValue final : public ImplControlValue
+class SAL_DLLPUBLIC_RTTI SliderValue final : public ImplControlValue
 {
     public:
         long            mnMin;
@@ -383,7 +383,7 @@ namespace o3tl
     template<> struct typed_flags<TabitemFlags> : is_typed_flags<TabitemFlags, 0x0f> {};
 }
 
-class TabitemValue final : public ImplControlValue
+class SAL_DLLPUBLIC_RTTI TabitemValue final : public ImplControlValue
 {
     public:
         TabitemFlags    mnAlignment;
@@ -418,7 +418,7 @@ class TabitemValue final : public ImplControlValue
  *   Note: the other parameters of DrawNativeControl will have no meaning
  *         all parameters for spinbuttons are carried here
  */
-class SpinbuttonValue final : public ImplControlValue
+class SAL_DLLPUBLIC_RTTI SpinbuttonValue final : public ImplControlValue
 {
     public:
         tools::Rectangle       maUpperRect;
@@ -491,7 +491,7 @@ public:
  * Value container for menu items; specifies the rectangle for the whole item which
  * may be useful when drawing parts with a smaller rectangle.
  */
-class MenupopupValue final : public ImplControlValue
+class SAL_DLLPUBLIC_RTTI MenupopupValue final : public ImplControlValue
 {
 public:
     MenupopupValue( long i_nGutterWidth, const tools::Rectangle& i_rItemRect )
diff --git a/sw/inc/SwNodeNum.hxx b/sw/inc/SwNodeNum.hxx
index b75759912a61..a29099dbfac4 100644
--- a/sw/inc/SwNodeNum.hxx
+++ b/sw/inc/SwNodeNum.hxx
@@ -26,7 +26,7 @@ class SwTextNode;
 struct SwPosition;
 class SwNumRule;
 
-class SwNodeNum : public SwNumberTreeNode
+class SAL_DLLPUBLIC_RTTI SwNodeNum : public SwNumberTreeNode
 {
 public:
 
diff --git a/sw/inc/SwNumberTree.hxx b/sw/inc/SwNumberTree.hxx
index a3e6cd5d23bd..ad3ffe845110 100644
--- a/sw/inc/SwNumberTree.hxx
+++ b/sw/inc/SwNumberTree.hxx
@@ -111,7 +111,7 @@ struct compSwNumberTreeNodeLessThan
 
      The phantom gets numbered with the start value.
 */
-class SwNumberTreeNode
+class SAL_DLLPUBLIC_RTTI SwNumberTreeNode
 {
 protected:
     typedef std::set<SwNumberTreeNode *, compSwNumberTreeNodeLessThan>
diff --git a/sw/inc/chpfld.hxx b/sw/inc/chpfld.hxx
index 34bac09bb61c..305831911b5f 100644
--- a/sw/inc/chpfld.hxx
+++ b/sw/inc/chpfld.hxx
@@ -36,7 +36,7 @@ enum SwChapterFormat
     CF_NUM_NOPREPST_TITLE,      ///< chapter number without post-/prefix and title
 };
 
-class SwChapterFieldType final : public SwFieldType
+class SAL_DLLPUBLIC_RTTI SwChapterFieldType final : public SwFieldType
 {
 public:
     SwChapterFieldType();
diff --git a/sw/inc/flypos.hxx b/sw/inc/flypos.hxx
index 360a5ec9ff61..933a9a30e5e0 100644
--- a/sw/inc/flypos.hxx
+++ b/sw/inc/flypos.hxx
@@ -27,7 +27,7 @@ class SwFrameFormat;
 class SwNodeIndex;
 
 /// For querying current flys in document.
-class SwPosFlyFrame final
+class SAL_DLLPUBLIC_RTTI SwPosFlyFrame final
 {
     const SwFrameFormat* m_pFrameFormat;    ///< FlyFrameFormat
     SwNodeIndex* m_pNodeIndex;        ///< Index for node is sufficient.
diff --git a/sw/inc/fmtcntnt.hxx b/sw/inc/fmtcntnt.hxx
index 756f8f699d5e..655c2ed8d7a3 100644
--- a/sw/inc/fmtcntnt.hxx
+++ b/sw/inc/fmtcntnt.hxx
@@ -28,7 +28,7 @@ class SwNodeIndex;
 class SwStartNode;
 
 /// Content, content of frame (header, footer, fly).
-class SwFormatContent: public SfxPoolItem
+class SAL_DLLPUBLIC_RTTI SwFormatContent: public SfxPoolItem
 {
     std::unique_ptr<SwNodeIndex> m_pStartNode;
 
diff --git a/sw/inc/swtblfmt.hxx b/sw/inc/swtblfmt.hxx
index 2d7aceb8e1a9..c1a114ea4066 100644
--- a/sw/inc/swtblfmt.hxx
+++ b/sw/inc/swtblfmt.hxx
@@ -21,7 +21,7 @@
 
 #include "frmfmt.hxx"
 
-class SwTableFormat final : public SwFrameFormat
+class SAL_DLLPUBLIC_RTTI SwTableFormat final : public SwFrameFormat
 {
     friend class SwDoc;
 
@@ -46,7 +46,7 @@ public:
     virtual bool supportsFullDrawingLayerFillAttributeSet() const override;
 };
 
-class SwTableBoxFormat final : public SwFrameFormat
+class SAL_DLLPUBLIC_RTTI SwTableBoxFormat final : public SwFrameFormat
 {
     friend class SwDoc;
 
diff --git a/sw/inc/unotbl.hxx b/sw/inc/unotbl.hxx
index 641deecf0a7f..7ec4121a9ad8 100644
--- a/sw/inc/unotbl.hxx
+++ b/sw/inc/unotbl.hxx
@@ -251,7 +251,7 @@ struct SwRangeDescriptor
     void Normalize();
 };
 
-class SwXTextTable final : public cppu::WeakImplHelper
+class SAL_DLLPUBLIC_RTTI SwXTextTable final : public cppu::WeakImplHelper
 <
     css::text::XTextTable,
     css::lang::XServiceInfo,
diff --git a/sw/source/core/inc/frame.hxx b/sw/source/core/inc/frame.hxx
index 4f3a4afa8fbc..13270c1258a8 100644
--- a/sw/source/core/inc/frame.hxx
+++ b/sw/source/core/inc/frame.hxx
@@ -127,7 +127,7 @@ namespace drawinglayer { namespace attribute {
 ///
 /// Added most important flags about the state of this geometric
 /// information and if it is valid or not
-class SwFrameAreaDefinition
+class SAL_DLLPUBLIC_RTTI SwFrameAreaDefinition
 {
 private:
     // The absolute position and size of the SwFrame in the document.


More information about the Libreoffice-commits mailing list