summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx1
-rw-r--r--filter/source/graphicfilter/ipict/ipict.cxx3
-rw-r--r--include/com/sun/star/uno/Any.h2
-rw-r--r--include/com/sun/star/uno/Reference.h2
-rw-r--r--include/com/sun/star/uno/Sequence.h2
-rw-r--r--include/com/sun/star/uno/Type.h2
-rw-r--r--include/registry/regtype.h6
-rw-r--r--include/rtl/alloc.h2
-rw-r--r--include/rtl/string.hxx2
-rw-r--r--include/rtl/unload.h2
-rw-r--r--include/rtl/ustring.h2
-rw-r--r--include/rtl/ustring.hxx2
-rw-r--r--include/sfx2/childwin.hxx8
-rw-r--r--include/tools/ref.hxx2
-rw-r--r--include/typelib/typedescription.h6
-rw-r--r--include/uno/any2.h2
-rw-r--r--include/uno/dispatcher.h2
-rw-r--r--include/uno/environment.h4
-rw-r--r--include/uno/mapping.h2
-rw-r--r--package/source/xstor/xfactory.cxx3
-rw-r--r--sal/textenc/tenchelp.hxx2
-rw-r--r--sc/inc/filter.hxx2
-rw-r--r--sc/source/ui/view/tabvwsh.cxx3
-rw-r--r--sd/source/filter/eppt/eppt.cxx3
-rw-r--r--sd/source/filter/html/HtmlOptionsDialog.cxx1
-rw-r--r--svl/source/uno/pathservice.cxx1
-rw-r--r--sw/qa/extras/ooxmlexport/data/fdo79822-SPECIAL.docxbin0 -> 39108 bytes
-rw-r--r--sw/source/uibase/web/wdocsh.cxx3
-rw-r--r--sw/source/uibase/web/wformsh.cxx3
-rw-r--r--sw/source/uibase/web/wfrmsh.cxx3
-rw-r--r--sw/source/uibase/web/wgrfsh.cxx3
-rw-r--r--sw/source/uibase/web/wlistsh.cxx3
-rw-r--r--sw/source/uibase/web/wtabsh.cxx3
-rw-r--r--sw/source/uibase/web/wtextsh.cxx3
-rw-r--r--sw/source/uibase/web/wview.cxx3
-rw-r--r--vcl/inc/salframe.hxx4
-rw-r--r--vcl/inc/unx/desktops.hxx6
-rw-r--r--vcl/source/components/dtranscomp.cxx1
-rw-r--r--vcl/source/components/fontident.cxx1
-rw-r--r--xmloff/source/chart/SchXMLExport.cxx1
-rw-r--r--xmloff/source/draw/animationimport.cxx1
-rw-r--r--xmloff/source/meta/MetaImportComponent.cxx1
-rw-r--r--xmloff/source/transform/OOo2Oasis.cxx1
-rw-r--r--xmloff/source/transform/Oasis2OOo.cxx1
44 files changed, 82 insertions, 28 deletions
diff --git a/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx b/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx
index 4ce1d7b71b83..ed5a73043b15 100644
--- a/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx
+++ b/drawinglayer/source/drawinglayeruno/xprimitive2drenderer.cxx
@@ -21,6 +21,7 @@
#include <boost/noncopyable.hpp>
#include <com/sun/star/graphic/XPrimitive2DRenderer.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <cppuhelper/implbase2.hxx>
#include <cppuhelper/supportsservice.hxx>
diff --git a/filter/source/graphicfilter/ipict/ipict.cxx b/filter/source/graphicfilter/ipict/ipict.cxx
index 19e1a75e3ffc..683819cab047 100644
--- a/filter/source/graphicfilter/ipict/ipict.cxx
+++ b/filter/source/graphicfilter/ipict/ipict.cxx
@@ -30,7 +30,8 @@
#include "shape.hxx"
#include <boost/scoped_array.hpp>
-class FilterConfigItem;
+#include <vcl/FilterConfigItem.hxx>
+ // complete FilterConfigItem for GraphicImport under -fsanitize=function
namespace PictReaderInternal {
//! utilitary class to store a pattern, ...
diff --git a/include/com/sun/star/uno/Any.h b/include/com/sun/star/uno/Any.h
index 2f44d741bcd2..ea69ec7e696d 100644
--- a/include/com/sun/star/uno/Any.h
+++ b/include/com/sun/star/uno/Any.h
@@ -46,7 +46,7 @@ class Type;
return true if the any contains an assignable value (no data loss), e.g. the any contains a
short and you >>= it into a long variable.
*/
-class SAL_WARN_UNUSED Any : public uno_Any
+class SAL_WARN_UNUSED SAL_DLLPUBLIC_RTTI Any : public uno_Any
{
public:
/// @cond INTERNAL
diff --git a/include/com/sun/star/uno/Reference.h b/include/com/sun/star/uno/Reference.h
index 47a5c171e2d1..91db7f59cb65 100644
--- a/include/com/sun/star/uno/Reference.h
+++ b/include/com/sun/star/uno/Reference.h
@@ -213,7 +213,7 @@ template< typename T2 > struct UpCast< XInterface, T2 > {};
for reference type.
*/
template< class interface_type >
-class Reference : public BaseReference
+class SAL_DLLPUBLIC_RTTI Reference : public BaseReference
{
/** Queries given interface for type interface_type.
diff --git a/include/com/sun/star/uno/Sequence.h b/include/com/sun/star/uno/Sequence.h
index 21e3e9df6156..b52894ddbc32 100644
--- a/include/com/sun/star/uno/Sequence.h
+++ b/include/com/sun/star/uno/Sequence.h
@@ -52,7 +52,7 @@ namespace uno
@tparam E element type of sequence
*/
template< class E >
-class SAL_WARN_UNUSED Sequence
+class SAL_WARN_UNUSED SAL_DLLPUBLIC_RTTI Sequence
{
/** sequence handle
*/
diff --git a/include/com/sun/star/uno/Type.h b/include/com/sun/star/uno/Type.h
index 45a866013747..c1d0590482ef 100644
--- a/include/com/sun/star/uno/Type.h
+++ b/include/com/sun/star/uno/Type.h
@@ -51,7 +51,7 @@ enum UnoType_NoAcquire
@see typelib_TypeDescriptionReference
*/
-class SAL_WARN_UNUSED Type
+class SAL_WARN_UNUSED SAL_DLLPUBLIC_RTTI Type
{
/** the C typelib reference pointer
*/
diff --git a/include/registry/regtype.h b/include/registry/regtype.h
index b08db8137852..79c3d993537d 100644
--- a/include/registry/regtype.h
+++ b/include/registry/regtype.h
@@ -50,7 +50,7 @@ typedef sal_uInt16 RegAccessMode;
a value and link keys which navigate over the linktarget to an existing
other key (which are no longer supported).
*/
-enum RegKeyType
+enum SAL_DLLPUBLIC_RTTI RegKeyType
{
/// represents a real key
RG_KEYTYPE,
@@ -66,7 +66,7 @@ enum RegKeyType
to define own data structures and store these types in the registry. The UNO
core reflection data is stored as a binary blob in the type registry.
*/
-enum RegValueType
+enum SAL_DLLPUBLIC_RTTI RegValueType
{
/// The key has no value or the value type is unknown.
RG_VALUETYPE_NOT_DEFINED,
@@ -87,7 +87,7 @@ enum RegValueType
};
/// specifies the possible error codes which can occur using the registry API.
-enum RegError
+enum SAL_DLLPUBLIC_RTTI RegError
{
/// no error.
REG_NO_ERROR,
diff --git a/include/rtl/alloc.h b/include/rtl/alloc.h
index 6a804928669c..835db155ac44 100644
--- a/include/rtl/alloc.h
+++ b/include/rtl/alloc.h
@@ -131,7 +131,7 @@ SAL_DLLPUBLIC void SAL_CALL rtl_freeAlignedMemory (
/** Opaque rtl_arena_type.
*/
-typedef struct rtl_arena_st rtl_arena_type;
+typedef struct SAL_DLLPUBLIC_RTTI rtl_arena_st rtl_arena_type;
#define RTL_ARENA_NAME_LENGTH 31
diff --git a/include/rtl/string.hxx b/include/rtl/string.hxx
index b3a89fc52c3f..94dad50bc3b4 100644
--- a/include/rtl/string.hxx
+++ b/include/rtl/string.hxx
@@ -85,7 +85,7 @@ namespace rtl
use this class.
*/
-class SAL_WARN_UNUSED OString
+class SAL_WARN_UNUSED SAL_DLLPUBLIC_RTTI OString
{
public:
/// @cond INTERNAL
diff --git a/include/rtl/unload.h b/include/rtl/unload.h
index f29a7543de96..53a5df18f515 100644
--- a/include/rtl/unload.h
+++ b/include/rtl/unload.h
@@ -39,7 +39,7 @@ extern "C"
@deprecated Do not use.
*/
-typedef struct _rtl_ModuleCount
+typedef struct SAL_DLLPUBLIC_RTTI _rtl_ModuleCount
{
void ( SAL_CALL * acquire ) ( struct _rtl_ModuleCount * that );
void ( SAL_CALL * release ) ( struct _rtl_ModuleCount * that );
diff --git a/include/rtl/ustring.h b/include/rtl/ustring.h
index 80c6bccf7f3d..8dd70cb4911f 100644
--- a/include/rtl/ustring.h
+++ b/include/rtl/ustring.h
@@ -1173,7 +1173,7 @@ SAL_DLLPUBLIC double SAL_CALL rtl_ustr_toDouble(
/** @cond INTERNAL */
/** The implementation of a Unicode string.
*/
-typedef struct _rtl_uString
+typedef struct SAL_DLLPUBLIC_RTTI _rtl_uString
{
oslInterlockedCount refCount; /* opaque */
sal_Int32 length;
diff --git a/include/rtl/ustring.hxx b/include/rtl/ustring.hxx
index 418892670596..78a6b60f1c17 100644
--- a/include/rtl/ustring.hxx
+++ b/include/rtl/ustring.hxx
@@ -111,7 +111,7 @@ template<char C> struct SAL_WARN_UNUSED OUStringLiteral1 {
less people should have understanding problems when they use this class.
*/
-class SAL_WARN_UNUSED OUString
+class SAL_WARN_UNUSED SAL_DLLPUBLIC_RTTI OUString
{
public:
/// @cond INTERNAL
diff --git a/include/sfx2/childwin.hxx b/include/sfx2/childwin.hxx
index d4a8efbcc494..a768e82cf919 100644
--- a/include/sfx2/childwin.hxx
+++ b/include/sfx2/childwin.hxx
@@ -20,6 +20,7 @@
#define INCLUDED_SFX2_CHILDWIN_HXX
#include <sal/config.h>
+
#include <sfx2/dllapi.h>
#include <sal/types.h>
#include <vcl/window.hxx>
@@ -28,9 +29,12 @@
#include <sfx2/shell.hxx>
#include <sfx2/chalign.hxx>
+#include <sfx2/bindings.hxx>
+ // complete SfxBindings for complete SfxChildWinCtor, SfxChildWinContextCtor
+ // under -fsanitize=function
+
class SfxWorkWindow;
class SfxModule;
-class SfxBindings;
class SfxShell;
class SfxChildWindow;
class SfxChildWindowContext;
@@ -45,7 +49,7 @@ class SfxChildWindowContext;
#define CHILDWIN_NOPOS USHRT_MAX
// ChildWindow Configuration
-struct SfxChildWinInfo
+struct SAL_DLLPUBLIC_RTTI SfxChildWinInfo
{
bool bVisible;
Point aPos;
diff --git a/include/tools/ref.hxx b/include/tools/ref.hxx
index aecc2b379e00..a2cba5088fad 100644
--- a/include/tools/ref.hxx
+++ b/include/tools/ref.hxx
@@ -33,7 +33,7 @@
namespace tools {
/** T must be a class that extends SvRefBase */
-template<typename T> class SvRef {
+template<typename T> class SAL_DLLPUBLIC_RTTI SvRef {
public:
SvRef(): pObj(0) {}
diff --git a/include/typelib/typedescription.h b/include/typelib/typedescription.h
index 2b7314f20b6f..8ed5ce068e58 100644
--- a/include/typelib/typedescription.h
+++ b/include/typelib/typedescription.h
@@ -37,7 +37,7 @@ struct _typelib_TypeDescription;
/** Holds a weak reference to a type description.
*/
-typedef struct _typelib_TypeDescriptionReference
+typedef struct SAL_DLLPUBLIC_RTTI _typelib_TypeDescriptionReference
{
/** reference count of type; don't ever modify this by yourself, use
typelib_typedescriptionreference_acquire() and typelib_typedescriptionreference_release()
@@ -68,7 +68,7 @@ typedef struct _typelib_TypeDescriptionReference
typelib_TypeDescriptionReference for the first six members.
So a typedescription can be used as type reference.
*/
-typedef struct _typelib_TypeDescription
+typedef struct SAL_DLLPUBLIC_RTTI _typelib_TypeDescription
{
/** reference count; don't ever modify this by yourself, use
typelib_typedescription_acquire() and typelib_typedescription_release()
@@ -367,7 +367,7 @@ typedef struct _typelib_InterfaceAttributeTypeDescription
<code>typelib_typedescription_complete</code>.</li>
</ul>
*/
-typedef struct _typelib_InterfaceTypeDescription
+typedef struct SAL_DLLPUBLIC_RTTI _typelib_InterfaceTypeDescription
{
/** inherits all members of typelib_TypeDescription
*/
diff --git a/include/uno/any2.h b/include/uno/any2.h
index 49a0d35e4c8b..556476dd5d89 100644
--- a/include/uno/any2.h
+++ b/include/uno/any2.h
@@ -37,7 +37,7 @@ struct _uno_Mapping;
/** This is the binary specification of an UNO any.
*/
-typedef struct _uno_Any
+typedef struct SAL_DLLPUBLIC_RTTI _uno_Any
{
/** type of value
*/
diff --git a/include/uno/dispatcher.h b/include/uno/dispatcher.h
index 71d1563db09a..d4bde04d077e 100644
--- a/include/uno/dispatcher.h
+++ b/include/uno/dispatcher.h
@@ -58,7 +58,7 @@ typedef void (SAL_CALL * uno_DispatchMethod)(
/** The binary C uno interface description.
*/
-typedef struct _uno_Interface
+typedef struct SAL_DLLPUBLIC_RTTI _uno_Interface
{
/** Acquires uno interface.
diff --git a/include/uno/environment.h b/include/uno/environment.h
index f9ab4e68cae9..d0051227ac69 100644
--- a/include/uno/environment.h
+++ b/include/uno/environment.h
@@ -38,7 +38,7 @@ struct _typelib_InterfaceTypeDescription;
/** The binary specification of an UNO environment.
*/
-typedef struct _uno_Environment
+typedef struct SAL_DLLPUBLIC_RTTI _uno_Environment
{
/** reserved for future use (0 if not used)
*/
@@ -130,7 +130,7 @@ typedef void * (SAL_CALL * uno_memAlloc)( sal_Size nBytes );
/** The binary specification of an UNO environment supporting interface registration.
*/
-typedef struct _uno_ExtEnvironment
+typedef struct SAL_DLLPUBLIC_RTTI _uno_ExtEnvironment
{
/** inherits all members of an uno_Environment
*/
diff --git a/include/uno/mapping.h b/include/uno/mapping.h
index 7673514e0a2d..5a55fbf68b45 100644
--- a/include/uno/mapping.h
+++ b/include/uno/mapping.h
@@ -61,7 +61,7 @@ typedef void (SAL_CALL * uno_MapInterfaceFunc)(
/** This is the binary specification of a mapping.
*/
-typedef struct _uno_Mapping
+typedef struct SAL_DLLPUBLIC_RTTI _uno_Mapping
{
/** Acquires mapping
*/
diff --git a/package/source/xstor/xfactory.cxx b/package/source/xstor/xfactory.cxx
index 11391e4897e9..95bb21a84622 100644
--- a/package/source/xstor/xfactory.cxx
+++ b/package/source/xstor/xfactory.cxx
@@ -17,6 +17,9 @@
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
+#include <sal/config.h>
+
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/ucb/SimpleFileAccess.hpp>
#include <com/sun/star/embed/ElementModes.hpp>
#include <com/sun/star/embed/StorageFormats.hpp>
diff --git a/sal/textenc/tenchelp.hxx b/sal/textenc/tenchelp.hxx
index b2f7fa51995e..410fca891c71 100644
--- a/sal/textenc/tenchelp.hxx
+++ b/sal/textenc/tenchelp.hxx
@@ -87,7 +87,7 @@ struct ImplTextConverter
/* - TextEncoding - Structures - */
/* ----------------------------- */
-struct ImplTextEncodingData
+struct SAL_DLLPUBLIC_RTTI ImplTextEncodingData
{
ImplTextConverter maConverter;
sal_uInt8 mnMinCharSize;
diff --git a/sc/inc/filter.hxx b/sc/inc/filter.hxx
index 4602f19b1c92..40d93fd945ce 100644
--- a/sc/inc/filter.hxx
+++ b/sc/inc/filter.hxx
@@ -79,7 +79,7 @@ class ScEEAbsImport {
SvNumberFormatter* pFormatter = NULL, bool bConvertDate = true ) = 0;
};
-class ScFormatFilterPlugin {
+class SAL_DLLPUBLIC_RTTI ScFormatFilterPlugin {
public:
// various import filters
virtual FltError ScImportLotus123( SfxMedium&, ScDocument*, rtl_TextEncoding eSrc = RTL_TEXTENCODING_DONTKNOW ) = 0;
diff --git a/sc/source/ui/view/tabvwsh.cxx b/sc/source/ui/view/tabvwsh.cxx
index c22278bebbbe..95b3903cf257 100644
--- a/sc/source/ui/view/tabvwsh.cxx
+++ b/sc/source/ui/view/tabvwsh.cxx
@@ -41,6 +41,9 @@
#include "spelldialog.hxx"
#include <searchresults.hxx>
+#include <sfx2/request.hxx>
+ // needed for -fsanitize=function visibility of typeinfo for functions of
+ // type void(SfxShell*,SfxRequest&) defined in scslots.hxx
#define ScTabViewShell
#include "scslots.hxx"
diff --git a/sd/source/filter/eppt/eppt.cxx b/sd/source/filter/eppt/eppt.cxx
index c66192f7e2fa..f4b4d8238fa0 100644
--- a/sd/source/filter/eppt/eppt.cxx
+++ b/sd/source/filter/eppt/eppt.cxx
@@ -55,6 +55,9 @@
#include <oox/ole/olehelper.hxx>
#include <rtl/math.hxx>
+#include <sfx2/objsh.hxx>
+ // complete SfxObjectShell for SaveVBA under -fsanitize=function
+
using namespace com::sun::star;
using namespace ::com::sun::star::uno;
using namespace ::com::sun::star::presentation;
diff --git a/sd/source/filter/html/HtmlOptionsDialog.cxx b/sd/source/filter/html/HtmlOptionsDialog.cxx
index 2945f525af73..d837d87730c8 100644
--- a/sd/source/filter/html/HtmlOptionsDialog.cxx
+++ b/sd/source/filter/html/HtmlOptionsDialog.cxx
@@ -22,6 +22,7 @@
#include <com/sun/star/frame/XModel.hpp>
#include <com/sun/star/document/XViewDataSupplier.hpp>
#include <com/sun/star/container/XIndexAccess.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/uno/Sequence.h>
#include <com/sun/star/uno/Any.h>
diff --git a/svl/source/uno/pathservice.cxx b/svl/source/uno/pathservice.cxx
index 8ad781fd674f..91a640d36347 100644
--- a/svl/source/uno/pathservice.cxx
+++ b/svl/source/uno/pathservice.cxx
@@ -24,6 +24,7 @@
#include <cppuhelper/implbase2.hxx>
#include <cppuhelper/supportsservice.hxx>
#include <com/sun/star/frame/XConfigManager.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <registerservices.hxx>
diff --git a/sw/qa/extras/ooxmlexport/data/fdo79822-SPECIAL.docx b/sw/qa/extras/ooxmlexport/data/fdo79822-SPECIAL.docx
new file mode 100644
index 000000000000..48fde879344f
--- /dev/null
+++ b/sw/qa/extras/ooxmlexport/data/fdo79822-SPECIAL.docx
Binary files differ
diff --git a/sw/source/uibase/web/wdocsh.cxx b/sw/source/uibase/web/wdocsh.cxx
index afe87184981f..275fbb0b4617 100644
--- a/sw/source/uibase/web/wdocsh.cxx
+++ b/sw/source/uibase/web/wdocsh.cxx
@@ -33,6 +33,9 @@
#include "wdocsh.hxx"
#include "web.hrc"
+#include <sfx2/request.hxx>
+ // needed for -fsanitize=function visibility of typeinfo for functions of
+ // type void(SfxShell*,SfxRequest&) defined in swslots.hxx
#define SwWebDocShell
#include "swslots.hxx"
diff --git a/sw/source/uibase/web/wformsh.cxx b/sw/source/uibase/web/wformsh.cxx
index 2d1c24f2aa7e..6daf3022188d 100644
--- a/sw/source/uibase/web/wformsh.cxx
+++ b/sw/source/uibase/web/wformsh.cxx
@@ -33,6 +33,9 @@
#include "popup.hrc"
#include "shells.hrc"
+#include <sfx2/request.hxx>
+ // needed for -fsanitize=function visibility of typeinfo for functions of
+ // type void(SfxShell*,SfxRequest&) defined in swslots.hxx
#define SwWebDrawFormShell
#include "swslots.hxx"
diff --git a/sw/source/uibase/web/wfrmsh.cxx b/sw/source/uibase/web/wfrmsh.cxx
index cb49a405a11f..f455f57db584 100644
--- a/sw/source/uibase/web/wfrmsh.cxx
+++ b/sw/source/uibase/web/wfrmsh.cxx
@@ -31,6 +31,9 @@
#include "web.hrc"
// STATIC DATA
+#include <sfx2/request.hxx>
+ // needed for -fsanitize=function visibility of typeinfo for functions of
+ // type void(SfxShell*,SfxRequest&) defined in swslots.hxx
#define SwWebFrameShell
#include <sfx2/msg.hxx>
#include "swslots.hxx"
diff --git a/sw/source/uibase/web/wgrfsh.cxx b/sw/source/uibase/web/wgrfsh.cxx
index 24e83a5a7cff..58a32bd39b27 100644
--- a/sw/source/uibase/web/wgrfsh.cxx
+++ b/sw/source/uibase/web/wgrfsh.cxx
@@ -35,6 +35,9 @@
#include "web.hrc"
#include "wgrfsh.hxx"
+#include <sfx2/request.hxx>
+ // needed for -fsanitize=function visibility of typeinfo for functions of
+ // type void(SfxShell*,SfxRequest&) defined in swslots.hxx
#define SwWebGrfShell
#include "swslots.hxx"
diff --git a/sw/source/uibase/web/wlistsh.cxx b/sw/source/uibase/web/wlistsh.cxx
index ad487d4c5c27..e41c8ad5b8be 100644
--- a/sw/source/uibase/web/wlistsh.cxx
+++ b/sw/source/uibase/web/wlistsh.cxx
@@ -31,6 +31,9 @@
#include "uinums.hxx"
#include "wlistsh.hxx"
+#include <sfx2/request.hxx>
+ // needed for -fsanitize=function visibility of typeinfo for functions of
+ // type void(SfxShell*,SfxRequest&) defined in swslots.hxx
#define SwWebListShell
#include "swslots.hxx"
diff --git a/sw/source/uibase/web/wtabsh.cxx b/sw/source/uibase/web/wtabsh.cxx
index c42fab259d00..a50e56617ca7 100644
--- a/sw/source/uibase/web/wtabsh.cxx
+++ b/sw/source/uibase/web/wtabsh.cxx
@@ -33,6 +33,9 @@
#include "wrtsh.hxx"
#include "wtabsh.hxx"
+#include <sfx2/request.hxx>
+ // needed for -fsanitize=function visibility of typeinfo for functions of
+ // type void(SfxShell*,SfxRequest&) defined in swslots.hxx
#define SwWebTableShell
#include <sfx2/msg.hxx>
#include "svx/svxids.hrc"
diff --git a/sw/source/uibase/web/wtextsh.cxx b/sw/source/uibase/web/wtextsh.cxx
index b45bdc17e395..a572f85b1361 100644
--- a/sw/source/uibase/web/wtextsh.cxx
+++ b/sw/source/uibase/web/wtextsh.cxx
@@ -37,6 +37,9 @@
#include <unomid.h>
// STATIC DATA
+#include <sfx2/request.hxx>
+ // needed for -fsanitize=function visibility of typeinfo for functions of
+ // type void(SfxShell*,SfxRequest&) defined in swslots.hxx
#define SwWebTextShell
#include <sfx2/msg.hxx>
#include "swslots.hxx"
diff --git a/sw/source/uibase/web/wview.cxx b/sw/source/uibase/web/wview.cxx
index c8dffd7261a2..eff5f9b6c713 100644
--- a/sw/source/uibase/web/wview.cxx
+++ b/sw/source/uibase/web/wview.cxx
@@ -60,6 +60,9 @@
#include <web.hrc>
#include <shells.hrc>
+#include <sfx2/request.hxx>
+ // needed for -fsanitize=function visibility of typeinfo for functions of
+ // type void(SfxShell*,SfxRequest&) defined in swslots.hxx
#define SwWebView
#define Text
#define TextInTable
diff --git a/vcl/inc/salframe.hxx b/vcl/inc/salframe.hxx
index 95e8bf2391af..6bbcb29f658f 100644
--- a/vcl/inc/salframe.hxx
+++ b/vcl/inc/salframe.hxx
@@ -34,11 +34,13 @@
#include <rtl/ustring.hxx>
#include <vcl/keycod.hxx>
+#include <vcl/window.hxx>
+ // complete vcl::Window for SalFrame::CallCallback under -fsanitize=function
+
class AllSettings;
class SalGraphics;
class SalBitmap;
class SalMenu;
-namespace vcl { class Window; }
struct SalFrameState;
struct SalInputContext;
diff --git a/vcl/inc/unx/desktops.hxx b/vcl/inc/unx/desktops.hxx
index babb1686e674..e88c47326b28 100644
--- a/vcl/inc/unx/desktops.hxx
+++ b/vcl/inc/unx/desktops.hxx
@@ -20,7 +20,11 @@
#ifndef INCLUDED_VCL_INC_UNX_DESKTOPS_HXX
#define INCLUDED_VCL_INC_UNX_DESKTOPS_HXX
-enum DesktopType {
+#include <sal/config.h>
+
+#include <sal/types.h>
+
+enum SAL_DLLPUBLIC_RTTI DesktopType {
DESKTOP_NONE, // headless, i.e. no X connection at all
DESKTOP_UNKNOWN, // unknown desktop, simple WM, etc.
DESKTOP_GNOME,
diff --git a/vcl/source/components/dtranscomp.cxx b/vcl/source/components/dtranscomp.cxx
index 5b443e264971..05a149008a48 100644
--- a/vcl/source/components/dtranscomp.cxx
+++ b/vcl/source/components/dtranscomp.cxx
@@ -25,6 +25,7 @@
#include "svdata.hxx"
#include "salinst.hxx"
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include "com/sun/star/lang/XServiceInfo.hpp"
#include "com/sun/star/lang/XSingleServiceFactory.hpp"
#include "com/sun/star/lang/XInitialization.hpp"
diff --git a/vcl/source/components/fontident.cxx b/vcl/source/components/fontident.cxx
index e5880d3bcd88..a7e6f3672724 100644
--- a/vcl/source/components/fontident.cxx
+++ b/vcl/source/components/fontident.cxx
@@ -23,6 +23,7 @@
#include "factory.hxx"
#include "svdata.hxx"
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/beans/XMaterialHolder.hpp>
#include <com/sun/star/awt/FontDescriptor.hpp>
diff --git a/xmloff/source/chart/SchXMLExport.cxx b/xmloff/source/chart/SchXMLExport.cxx
index f854708f3566..927644570235 100644
--- a/xmloff/source/chart/SchXMLExport.cxx
+++ b/xmloff/source/chart/SchXMLExport.cxx
@@ -52,6 +52,7 @@
#include <algorithm>
#include <com/sun/star/task/XStatusIndicatorSupplier.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XServiceName.hpp>
#include <com/sun/star/beans/XPropertySet.hpp>
diff --git a/xmloff/source/draw/animationimport.cxx b/xmloff/source/draw/animationimport.cxx
index a72dcedc6fb0..67df98731c51 100644
--- a/xmloff/source/draw/animationimport.cxx
+++ b/xmloff/source/draw/animationimport.cxx
@@ -18,6 +18,7 @@
*/
#include <xmloff/unointerfacetouniqueidentifiermapper.hxx>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
#include <com/sun/star/animations/AnimationTransformType.hpp>
diff --git a/xmloff/source/meta/MetaImportComponent.cxx b/xmloff/source/meta/MetaImportComponent.cxx
index 217cc66c102f..0e271094a778 100644
--- a/xmloff/source/meta/MetaImportComponent.cxx
+++ b/xmloff/source/meta/MetaImportComponent.cxx
@@ -23,6 +23,7 @@
#include <xmloff/xmltoken.hxx>
#include <xmloff/xmlmetai.hxx>
#include <xmloff/nmspmap.hxx>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <comphelper/processfactory.hxx>
using namespace ::com::sun::star;
diff --git a/xmloff/source/transform/OOo2Oasis.cxx b/xmloff/source/transform/OOo2Oasis.cxx
index b944dccecf21..6ec9363980de 100644
--- a/xmloff/source/transform/OOo2Oasis.cxx
+++ b/xmloff/source/transform/OOo2Oasis.cxx
@@ -19,6 +19,7 @@
#include <rtl/ustrbuf.hxx>
#include <osl/diagnose.h>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <comphelper/processfactory.hxx>
#include <comphelper/servicehelper.hxx>
#include <sax/tools/converter.hxx>
diff --git a/xmloff/source/transform/Oasis2OOo.cxx b/xmloff/source/transform/Oasis2OOo.cxx
index 519f39d71757..461b8776ddb4 100644
--- a/xmloff/source/transform/Oasis2OOo.cxx
+++ b/xmloff/source/transform/Oasis2OOo.cxx
@@ -18,6 +18,7 @@
*/
#include <com/sun/star/beans/XPropertySetInfo.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#include <rtl/ustrbuf.hxx>
#include <sax/tools/converter.hxx>
#include <xmloff/nmspmap.hxx>