diff options
author | Stephan Bergmann <sbergman@redhat.com> | 2019-11-07 13:08:29 +0100 |
---|---|---|
committer | Stephan Bergmann <sbergman@redhat.com> | 2019-11-07 15:17:07 +0100 |
commit | d5cb1c694cb52e83781363d292a6d2d80fbd9c51 (patch) | |
tree | 04a2436c316e61da7b5902163d2a6f6028431a6e /sw/inc | |
parent | eb050ae015300e850553f71b4ebbd80f40f4c3f3 (diff) |
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@redhat.com>
Diffstat (limited to 'sw/inc')
-rw-r--r-- | sw/inc/SwNodeNum.hxx | 2 | ||||
-rw-r--r-- | sw/inc/SwNumberTree.hxx | 2 | ||||
-rw-r--r-- | sw/inc/chpfld.hxx | 2 | ||||
-rw-r--r-- | sw/inc/flypos.hxx | 2 | ||||
-rw-r--r-- | sw/inc/fmtcntnt.hxx | 2 | ||||
-rw-r--r-- | sw/inc/swtblfmt.hxx | 4 | ||||
-rw-r--r-- | sw/inc/unotbl.hxx | 2 |
7 files changed, 8 insertions, 8 deletions
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, |