summaryrefslogtreecommitdiff
path: root/sw/inc
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2019-11-07 13:08:29 +0100
committerStephan Bergmann <sbergman@redhat.com>2019-11-07 15:17:07 +0100
commitd5cb1c694cb52e83781363d292a6d2d80fbd9c51 (patch)
tree04a2436c316e61da7b5902163d2a6f6028431a6e /sw/inc
parenteb050ae015300e850553f71b4ebbd80f40f4c3f3 (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.hxx2
-rw-r--r--sw/inc/SwNumberTree.hxx2
-rw-r--r--sw/inc/chpfld.hxx2
-rw-r--r--sw/inc/flypos.hxx2
-rw-r--r--sw/inc/fmtcntnt.hxx2
-rw-r--r--sw/inc/swtblfmt.hxx4
-rw-r--r--sw/inc/unotbl.hxx2
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,